Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server에서 권한 부여(GRANT) 및 취소(REVOKE) 방법

SQL Server에서는 데이터베이스 내 다양한 객체에 대해 사용자에게 권한을 부여하거나 회수할 수 있습니다. 이 글에서는 GRANT와 REVOKE 명령어를 사용해 테이블 권한을 부여하고 취소하는 방법을 예제와 함께 자세히 알아봅니다.

테이블에 대한 권한 부여

테이블에 대해 사용자에게 부여할 수 있는 권한으로는 SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER 또는 ALL이 있습니다.

구문

GRANT 권한 ON 객체 TO 사용자;

권한

사용자에게 지정할 권한입니다. 다음 중 하나를 선택할 수 있습니다.

권한설명
SELECT테이블에서 SELECT 문을 실행할 수 있는 능력
INSERT테이블에서 INSERT 명령을 실행할 수 있는 능력
UPDATE테이블에서 UPDATE 명령을 실행할 수 있는 능력
DELETE테이블에서 DELETE 명령을 실행할 수 있는 능력
REFERENCES테이블을 참조하는 제약 조건을 생성할 수 있는 능력
ALTERALTER TABLE 문을 실행하여 테이블 정의를 변경할 수 있는 능력
ALL말 그대로 모든 권한을 의미하는 것은 아니며, ANSI-92 표준에 따라 SELECT, INSERT, UPDATE, DELETE, REFERENCES 권한을 부여합니다.

객체

권한을 부여하려는 데이터베이스 객체의 이름입니다. 테이블에 권한을 부여하는 경우에는 해당 테이블의 이름을 지정합니다.

사용자

권한을 부여받을 사용자의 계정 이름입니다.

부여 예제

사용자 smithj에게 nhanvien 테이블에 대한 SELECT, INSERT, UPDATE, DELETE 권한을 부여하려면 아래의 GRANT 명령을 실행합니다.

GRANT SELECT, INSERT, UPDATE, DELETE ON nhanvien TO smithj;

ALL 키워드를 사용하면 ANSI-92 표준에 따른 모든 권한을 smithj 사용자에게 한 번에 부여할 수 있습니다.

GRANT ALL ON nhanvien TO smithj;

테이블에 대한 SELECT 권한을 모든 사용자에게 부여하려면 PUBLIC 그룹에 권한을 지정하면 됩니다.

GRANT SELECT ON nhanvien TO PUBLIC;

테이블에 대한 권한 취소

권한을 부여한 후에는 REVOKE 명령으로 해당 권한을 회수할 수 있습니다. 취소 가능한 권한은 SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER 또는 ALL입니다.

구문

REVOKE 권한 ON 객체 FROM 사용자;

권한

회수할 권한입니다. 앞서 소개한 권한 목록과 동일하게 적용됩니다.

권한설명
SELECT테이블에서 SELECT 문을 실행할 수 있는 능력
INSERT테이블에서 INSERT 명령을 실행할 수 있는 능력
UPDATE테이블에서 UPDATE 명령을 실행할 수 있는 능력
DELETE테이블에서 DELETE 명령을 실행할 수 있는 능력
REFERENCES테이블을 참조하는 제약 조건을 생성할 수 있는 능력
ALTERALTER TABLE 문을 실행하여 테이블 정의를 변경할 수 있는 능력
ALLANSI-92 표준에 따른 SELECT, INSERT, UPDATE, DELETE, REFERENCES 권한 전체를 의미합니다.

객체

권한을 회수하려는 데이터베이스 객체의 이름입니다. 테이블인 경우 해당 테이블의 이름을 지정합니다.

사용자

권한을 회수당할 사용자의 계정 이름입니다.

취소 예제

anderson 사용자로부터 users 테이블에 대한 DELETE 권한을 회수하려면 아래의 REVOKE 명령을 실행합니다.

REVOKE DELETE ON users FROM anderson;

ANSI-92 표준에 따른 모든 권한을 anderson 사용자로부터 회수하려면 ALL 키워드를 사용합니다.

REVOKE ALL ON users FROM anderson;

PUBLIC 그룹(모든 사용자)에게 부여했던 SELECT 권한을 회수하려면 아래 명령을 사용합니다.

REVOKE SELECT ON users FROM PUBLIC;