sp_table_privileges(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
지정한 테이블 또는 테이블에 대한 테이블 사용 권한 목록(예: INSERT
, DELETE
, UPDATE
, SELECT
REFERENCES
)을 반환합니다.
구문
sp_table_privileges
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
[ @table_name = ] N'table_name'
카탈로그 정보를 반환하는 데 사용되는 테이블입니다. @table_name nvarchar(384)이며 기본값은 없습니다. 와일드카드 패턴 일치가 지원됩니다.
[ @table_owner = ] N'table_owner'
카탈로그 정보를 반환하는 데 사용되는 테이블의 테이블 소유자입니다. @table_owner 기본값NULL
인 nvarchar(384)입니다. 와일드카드 패턴 일치가 지원됩니다. 소유자가 지정되지 않은 경우 기본 DBMS의 기본 테이블 표시 유형 규칙이 적용됩니다.
현재 사용자가 지정된 이름의 테이블을 소유한 경우 해당 테이블의 열이 반환됩니다. 소유자가 지정되지 않고 현재 사용자가 지정된 이름의 테이블을 소유하지 않는 경우 이 절차에서는 데이터베이스 소유자가 소유한 지정된 table_name 있는 테이블을 찾습니다. 테이블이 있을 경우 해당 테이블의 열이 반환됩니다.
[ @table_qualifier = ] N'table_qualifier'
테이블 한정자의 이름입니다. @table_qualifier sysname이며 기본값은 .입니다NULL
. 다양한 DBMS 제품은 테이블(qualifier.owner.name)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.
[ @fUsePattern = ] fUsePattern
밑줄(), 백분율(_
) 및 대괄호(%
[
또는]
) 문자가 와일드카드 문자로 해석되는지 여부를 결정합니다. 유효한 값은 0
(패턴 일치가 꺼져 있습니다) 및 1
(패턴 일치가 켜집니다). @fUsePattern 비트이며 기본값은 .입니다1
.
반환 코드 값
없음
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
TABLE_QUALIFIER |
sysname | 테이블 한정자 이름입니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 이 필드는 다음과 같습니다 NULL . |
TABLE_OWNER |
sysname | 테이블 소유자 이름입니다. 이 필드는 항상 값을 반환합니다. |
TABLE_NAME |
sysname | 테이블 이름입니다. 이 필드는 항상 값을 반환합니다. |
GRANTOR |
sysname | 나열된 GRANTEE 데이터베이스에 대한 TABLE_NAME 사용 권한이 부여된 데이터베이스 사용자 이름입니다. SQL Server에서 이 열은 항상 .TABLE_OWNER 이 필드는 항상 값을 반환합니다. 또한 GRANTOR 열은 데이터베이스 소유자(TABLE_OWNER ) 또는 데이터베이스 소유자가 문의 절 GRANT 을 사용하여 WITH GRANT OPTION 사용 권한을 부여한 사용자일 수 있습니다. |
GRANTEE |
sysname | 나열된 GRANTOR 데이터베이스 사용자 이름 TABLE_NAME 입니다. SQL Server에서 이 열에는 항상 뷰의 데이터베이스 사용자가 sys.database_principalssystem 포함됩니다. 이 필드는 항상 값을 반환합니다. |
PRIVILEGE |
sysname | 사용 가능한 테이블 권한 중 하나입니다. 테이블 권한은 다음 값(또는 구현이 정의될 때 데이터 원본에서 지원하는 다른 값) 중 하나일 수 있습니다.SELECT = GRANTEE 는 하나 이상의 열에 대한 데이터를 검색할 수 있습니다.INSERT = GRANTEE 는 하나 이상의 열에 대한 새 행에 대한 데이터를 제공할 수 있습니다.UPDATE = GRANTEE 는 하나 이상의 열에 대한 기존 데이터를 수정할 수 있습니다.DELETE = GRANTEE 는 테이블에서 행을 제거할 수 있습니다.REFERENCES = GRANTEE 는 기본 키/외래 키 관계에서 외래 테이블의 열을 참조할 수 있습니다. SQL Server에서 기본 키/외래 키 관계는 테이블 제약 조건으로 정의됩니다.지정된 테이블 권한으로 GRANTEE 지정된 작업 범위는 데이터 원본에 따라 다릅니다. 예를 들어 권한은 UPDATE 한 데이터 원본에 있는 테이블의 모든 열과 다른 데이터 원본에 대한 권한이 있는 GRANTOR UPDATE 열만 업데이트하도록 허용할 GRANTEE 수 있습니다. |
IS_GRANTABLE |
sysname | 다른 사용자에게 사용 권한을 부여할 수 있는지 여부를 GRANTEE 나타냅니다("권한 부여로 부여"라고도 함). YES , NO 또는 NULL 일 수 있습니다. 알 수 없는(또는 NULL ) 값은 "부여를 사용하여 부여"를 적용할 수 없는 데이터 원본을 나타냅니다. |
설명
sp_table_privileges
저장 프로시저는 ODBC와 동일합니다SQLTablePrivileges
. 반환된 결과는 , TABLE_OWNER
, TABLE_NAME
및 PRIVILEGE
.로 TABLE_QUALIFIER
정렬됩니다.
사용 권한
스키마에 SELECT
대한 권한이 필요합니다.
예제
다음 예제에서는 이름이 단어 Contact
로 시작하는 모든 테이블에 대한 권한 정보를 반환합니다.
USE AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';