다음을 통해 공유


sp_column_privileges(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

현재 환경 내의 단일 테이블에 대한 열 권한 정보를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

sp_column_privileges
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

인수

[ @table_name = ] N'table_name'

카탈로그 정보를 반환하는 데 사용되는 테이블입니다. @table_name 기본값이 없는 sysname입니다. 와일드카드 패턴 일치는 지원되지 않습니다.

[ @table_owner = ] N'table_owner'

카탈로그 정보를 반환하는 데 사용되는 테이블의 소유자입니다. @table_owner sysname이며 기본값은 .입니다NULL. 와일드카드 패턴 일치는 지원되지 않습니다. @table_owner 지정되지 않은 경우 기본 DBMS(데이터베이스 관리 시스템)의 기본 테이블 표시 유형 규칙이 적용됩니다.

현재 사용자가 지정된 이름의 테이블을 소유하는 경우 해당 테이블의 열이 반환됩니다. @table_owner 지정되지 않고 현재 사용자가 지정된 @table_name sp_column있는 테이블을 소유하지 않는 경우 권한은 데이터베이스 소유자가 소유한 지정된 @table_name 있는 테이블을 찾습니다. 테이블 열이 있으면 해당 테이블의 열이 반환됩니다.

[ @table_qualifier = ] N'table_qualifier'

테이블 한정자의 이름입니다. @table_qualifier sysname이며 기본값은 .입니다NULL. 다양한 DBMS 제품은 테이블(<qualifier>.<owner>.<name>)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.

[ @column_name = ] N'column_name'

카탈로그 정보의 열을 하나만 가져올 때 사용되는 단일 열입니다. @column_name 기본값NULL인 nvarchar(384)입니다. @column_name 지정하지 않으면 모든 열이 반환됩니다. SQL Server에서 @column_name 테이블에 나열된 sys.columns 열 이름을 나타냅니다. @column_name 기본 DBMS의 와일드카드 일치 패턴을 사용하는 와일드카드 문자를 포함할 수 있습니다. 최대 상호 운용성을 위해 게이트웨이 클라이언트는 ISO 표준 패턴 일치( %_ 와일드카드 문자)만 가정해야 합니다.

결과 집합

sp_column_privileges 는 ODBC와 동일합니다 SQLColumnPrivileges . 반환된 결과는 , TABLE_OWNER, TABLE_NAMECOLUMN_NAMEPRIVILEGE.로 TABLE_QUALIFIER정렬됩니다.

열 이름 데이터 형식 설명
TABLE_QUALIFIER sysname 테이블 한정자 이름입니다. 이 필드는 다음과 같습니다 NULL.
TABLE_OWNER sysname 테이블 소유자 이름입니다. 이 필드는 항상 값을 반환합니다.
TABLE_NAME sysname 테이블 이름입니다. 이 필드는 항상 값을 반환합니다.
COLUMN_NAME sysname 반환된 각 열의 열 이름입니다 TABLE_NAME . 이 필드는 항상 값을 반환합니다.
GRANTOR sysname 나열된 데이터베이스 사용자 이름에 대한 COLUMN_NAME 사용 권한이 부여되었습니다 GRANTEE. SQL Server에서 이 열은 항상 .TABLE_OWNER 이 필드는 항상 값을 반환합니다.

열은 GRANTOR 데이터베이스 소유자(TABLE_OWNER) 또는 데이터베이스 소유자가 문의 절 GRANT 을 사용하여 WITH GRANT OPTION 사용 권한을 부여한 사용자일 수 있습니다.
GRANTEE sysname 나열된 데이터베이스 사용자 이름에 의해 이에 COLUMN_NAME 대한 사용 권한이 부여되었습니다 GRANTOR. SQL Server에서 이 열에는 항상 테이블의 데이터베이스 사용자가 포함됩니다 sysusers . 이 필드는 항상 값을 반환합니다.
PRIVILEGE varchar(32) 사용 가능한 열 권한 중 하나입니다. 열 권한은 다음 값(또는 구현이 정의될 때 데이터 원본에서 지원하는 다른 값) 중 하나일 수 있습니다.

SELECT = GRANTEE 는 열에 대한 데이터를 검색할 수 있습니다.
INSERT = GRANTEE 는 테이블에 새 행을 삽입할 때 이 열에 GRANTEE대한 데이터를 제공할 수 있습니다.
UPDATE = GRANTEE 는 열의 기존 데이터를 수정할 수 있습니다.
REFERENCES = GRANTEE 는 기본 키/외래 키 관계에서 외래 테이블의 열을 참조할 수 있습니다. 기본 키/외래 키 관계는 테이블 제약 조건을 사용하여 정의됩니다.
IS_GRANTABLE varchar(3) 다른 사용자에게 사용 권한을 부여할 수 있는지 여부를 GRANTEE 나타냅니다("권한 부여" 권한이라고도 함). YES, NO 또는 NULL일 수 있습니다. 알 수 없는 값 또는 NULL값은 "부여를 사용하여 부여"를 적용할 수 없는 데이터 원본을 나타냅니다.

설명

SQL Server를 사용하면 명령문에 사용 권한이 부여 GRANT 되고 문에서 REVOKE 제거됩니다.

사용 권한

스키마에 SELECT 대한 권한이 필요합니다.

예제

다음 예제에서는 특정 열에 대한 열 권한 정보를 반환합니다.

USE AdventureWorks2022;
GO

EXEC sp_column_privileges
    @table_name = 'Employee',
    @table_owner = 'HumanResources',
    @table_qualifier = 'AdventureWorks2022',
    @column_name = 'SalariedFlag';