SQLTablePrivileges
SQLTablePrivileges#
테이블들의 목록과 각 테이블과 관련된 권한들을 반환한다. Altibase CLI 드라이버는 명시된 명령문 상에 결과 집합으로써 정보를 반환한다.
Unicode SQLTablePrivilegesW() 동작은 SQLTablePrivileges()와 동일하다.
구 문#
SQLRETURN SQLTablePrivileges(
SQLHSTMT stmt,
SQLCHAR * cName,
SQLSMALLINT cNaneLength,
SQLCHAR * sName,
SQLSMALLINT sNameLength,
SQLCHAR * tName,
SQLSMALLINT tNameLength);
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHSTMT | stmt | 입력 | 명령문 핸들 |
SQLCHAR* | cName | 입력 | 카탈로그 이름 |
SQLSMALLINT | cNameLength | 입력 | *cName의 문자 개수 |
SQLCHAR * | sName | 입력 | 검색할 스키마 이름 |
SQLSMALLINT | sNameLength | 입력 | *sName의 문자 개수 |
SQLCHAR * | tName | 입력 | 검색할 테이블 이름 |
SQLSMALLINT | tNameLength | 입력 | *tName의 문자 개수 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
설 명#
SQLTablePrivileges()는 TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE, 그리고 GRANTEE에 의해 순서화된 표준 결과 집합 형태로 결과들을 반환한다.
다음 테이블은 결과 집합의 열들을 나열한다.
이름 | 번호 | 자료 유형 | 설명 |
---|---|---|---|
TABLE_CAT | 1 | VARCHAR | 항상 NULL 반환 |
TABLE_SCHEM | 2 | VARCHAR | 스키마 이름. DB에 적절하지 않은 경우 NULL |
TABLE_NAME | 3 | VARCHAR (NOT NULL) | 테이블 이름 |
GRANTOR | 4 | VARCHAR | 권한을 부여한 사용자 이름. DB에 적절하지 않은 경우 NULL |
GRANTEE | 5 | VARCHAR (NOT NULL) | 권한을 부여 받은 사용자 이름 |
PRIVILEGE | 6 | VARCHAR (NOT NULL) | 테이블 권한. 다음 권한 중에 하나이다. - ALTER: 피 수여자는 테이블의 정의를 변경할 수 있다. - DELETE: 피 수여자는 테이블의 행들을 삭제하는 것이 허용된다. - INDEX: 피 수여자는 테이블에 대하여 인덱스 연산 (create, alter 등)이 허용된다. - INSERT: 피 수여자는 새로운 행들을 테이블에 삽입할 수 있다. - REFERENCES: 피 수여자는 제한조건을 가진 테이블의 열을 참조하는 것이 허용된다. - SELECT: 피 수여자가 테이블에서 한 개 또는 여러 열들을 검색하는 것이 허용된다. - UPDATE: 피 수여자는 테이블에 대하여 하나 이상의 데이터를 수정할 수 있다. |
IS_GRANTABLE | 7 | VARCHAR | 피 수여자가 다른 사용자들에게 권한을 부여할 수 있는지를 나타낸다: YES, NO, 또는 DB에 적절치 않거나 알려지지 않은 경우 NULL |
[표 2‑6] SQLTablePrivileges()에 의해 반환 되는 열
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
08S01 | 통신 회선 장애 (데이터 송수신 실패) | Altibase CLI 드라이버와 DB간에 함수 처리가 완료되기 전에 통신 회선 실패 |
HY009 | 유효하지 않은 인자 (null pointer) 사용 | 인자 cName이 null 포인터임. |
HY090 | 유효하지 않은 문자열 또는 버퍼 길이 | 이름 길이 인자들 중 하나의 값이 0보다 작거나 SQL_NTS와 같지 않음. |
관련 함수#
SQLBindCol
SQLCancel
SQLColumns
SQLFetch
SQLPrimaryKeys
SQLStatistics
SQLTables
예 제#
< $ALTIBASE_HOME/sample/SQLCLI/demo_meta10.cpp 참고 >
if (SQLTablePrivileges(stmt,
NULL, 0,
"SYS", SQL_NTS,
"DEMO_META10", SQL_NTS) != SQL_SUCCESS)
{
execute_err(dbc, stmt, "SQLTablePrivileges");
SQLFreeStmt(stmt, SQL_DROP);
return SQL_ERROR;
}
SQLBindCol(stmt, 2, SQL_C_CHAR, szSchema, NAME_LEN, &cbSchema);
SQLBindCol(stmt, 3, SQL_C_CHAR, szTableName, NAME_LEN,&cbTableName);
SQLBindCol(stmt, 4, SQL_C_CHAR, szGrantor, NAME_LEN, &cbGrantor);
SQLBindCol(stmt, 5, SQL_C_CHAR, szGrantee, NAME_LEN, &cbGrantee);
SQLBindCol(stmt, 6, SQL_C_CHAR, szPrivilege, NAME_LEN,&cbPrivilege);
SQLBindCol(stmt, 7, SQL_C_CHAR, szGrantable, 5, &cbGrantable);