-
권한을 설정할 때 사용자나 역할에 상관없이 권한을 설정하는 객체입니다. 응용 프로그램 역할이 특별하고 다른 역할 및 사용자와 상호 배타적인 관계를 가지고 있다는 점을 제외하면 데이터베이스 역할과 멤버는 권한 측면에서 매우 밀접한 관계를 갖습니다. 사용자는 동시에 여러 데이터베이스 역할에 속할 수 있으며, 각 역할은 서로 다른 권한을 가질 수 있습니다. 이때 거부(금지) 설정이 없는 한 사용자가 실제 권한을 얻는 원칙은 "통합"입니다. 예를 들어 역할 A는 데이터 테이블 B를 읽을 수 없지만 역할 C는 데이터 테이블을 읽을 수 있습니다.
B, 현재 A 역할과 C 역할에 속한 사용자는 차단되었기 때문에 여전히 데이터 테이블 B를 읽을 수 없습니다.
권한의 객체는 서버와 데이터베이스로 나눌 수 있습니다. 즉, 이 두 가지에 대해 별도로 권한을 설정할 수 있습니다. 다음 설명을 참조하세요.
서버 권한 지정 (1) 개체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택합니다.
(2) 대화 상자에서 "권한"으로 전환합니다.
(3) "로그인 이름 또는 역할"에서 권한을 설정할 개체를 선택하고 "명시적 권한"에서 각각 권한을 확인합니다.
완료 후 그림 15-21과 같이 "확인" 버튼을 클릭합니다.
그림 15-21과 같이 서버에 대한 권한 설정이다. "인증자"는 현재 SQL Server에 로그인되어 있는 사람입니다.
서버의 로그인 이름은 모든 현재 로그인 이름으로 설정할 수 있는 권한입니다. "허용"은 권한 부여를 의미합니다. "허용 있음"을 선택하면 sa가 선택한 개체에 권한을 부여하고 그런 다음 다른 로그인에 허용하십시오. "거부" 사용이 금지되어 있습니다.
이 세 가지 옵션의 선택은 관련되어 있습니다. "거부"를 선택하면 "허용" 및 "허가 있음"이 자동으로 지워지고 "거부"가 선택되면 "허용"이 선택됩니다. .
"로그인 이름 또는 역할"은 권한이 설정되는 개체입니다. 독자는 "추가" 버튼을 클릭하여 다른 로그인 이름이나 역할을 지정할 수 있습니다. 그러나 모든 내장 서버 역할은 권한을 변경할 수 없습니다. 공적인 역할.
현재 선택된 로그인 또는 역할의 권한을 보려면 유효 권한 버튼을 클릭하십시오. 유효 권한은 그림 15-21에서 설정될 수 있을 뿐만 아니라 로그인이 속한 역할에 따라 달라질 수도 있습니다. 따라서 그림 15-21에는 이 설정에 정의된 권한만 표시되며 기본 기존 권한은 표시되지 않습니다.
그림 15-21 서버 권한 설정 및 데이터베이스 권한 지정 (1) 개체 탐색기에서 eBook 데이터베이스를 선택하고 마우스 오른쪽 버튼을 클릭한 후 "속성"을 선택합니다.
(2) 대화 상자에서 "권한"으로 전환합니다.
(3) 그림 15-22와 같이 "User or Role"에서 권한을 설정할 개체를 선택하고 "Explicit Permissions"에서 권한을 확인한 후 완료되면 "OK" 버튼을 클릭한다.
개체 권한 (1) 개체 탐색기에서 eBook 데이터베이스를 선택하고 "데이터 테이블"을 열고 "주문" 데이터 테이블을 선택한 다음 마우스 오른쪽 버튼을 클릭하고 "속성"을 선택합니다.
(2) 대화 상자에서 "권한"으로 전환합니다.
(3) "추가" 버튼을 클릭한 후 대화 상자에서 권한을 변경하려는 사용자, 데이터베이스 역할 또는 애플리케이션 역할을 지정합니다.
(4) 그림 15-23과 같이 "User or Role"에서 권한을 설정할 개체를 선택하고 "Explicit Permissions"에서 권한을 확인한 후 완료되면 "OK" 버튼을 클릭한다.
그림 15-21과 그림 15-23의 동작 방식은 서버, 데이터베이스, 객체에 대한 권한이 별도로 설정되어 있고, 설정할 수 있는 객체도 다르다는 점만 다를 뿐 완전히 동일하다. 그림 15-21에서는 그림 15-22에서 로그인 이름과 서버 역할에 대한 권한을 지정할 수 있습니다.
그림 15-23에서는 사용자, 데이터베이스 역할 및 애플리케이션 역할에 대해 권한을 지정할 수 있습니다. 또 다른 차이점은 지정할 수 있는 권한이 다르다는 것입니다.
그림 15-22 데이터베이스 권한 설정
그림 15-23 개체 권한 및 권한 설정
SQL Server에서 설정할 수 있는 권한은 매우 복잡합니다. 서버에서 개체까지의 권한은 94개입니다. 더 이해하기 어려운 것은 서버 및 데이터베이스의 속성입니다.
표 15-4 중요한 권한 설명
권한 내용 설명
CONTROL은 피부여자에게 소유권과 유사한 기능을 부여합니다. 수혜자는 실제로 다음과 같은 안전한 권리를 갖고 있습니다.
아이콘에 정의된 모든 권한
ALTER 특정 보안 개체의 속성(소유권 제외)을 변경하는 기능을 부여합니다. 특정 범위에서
범위에 ALTER 권한이 부여되면 범위를 변경, 생성 또는 삭제할 수 있는 권한도 부여됩니다.
포함된 보안 개체의 기능
ALTER ANY <서버 보안 개체> 서버 보안 개체의 개별 인스턴스를 생성, 변경 또는 삭제하는 기능을 부여합니다.
ALTER ANY <database safe object> 데이터베이스 안전 개체의 개별 인스턴스에 CREATE, ALTER 또는 DROP을 부여합니다.
능력
TAKE OWNERSHIP을 사용하면 피부여자가 부여된 보안 객체의 소유권을 얻을 수 있습니다.
CREATE <서버 보안 개체> 피부여자에게 서버 보안 개체를 생성할 수 있는 권한을 부여합니다.
CREATE <데이터베이스 보안 개체> 피부여자에게 데이터베이스 보안 개체를 생성할 수 있는 권한을 부여합니다.
VIEW DEFINITION을 통해 피부여자가 메타데이터에 액세스할 수 있습니다.
표 15-4의 "보안 객체"는 "Create Role"의 "Role"과 같이 권한 설정 작업의 객체를 의미한다.
이것이 안전한 개체입니다.
T-SQL을 사용하여 권한을 설정하려면 GRANT(허용), DENY(거부) 및 REVOKE(해지) 문을 사용할 수 있습니다.
이 세 가지 명령문은 다양한 용도로 사용되며 기본 형식은 다음과 같습니다.
GRANT ALL 또는 권한 이름 ON 개체 TO 사용자 또는 역할 이름 WITH 옵션
REVOKE ALL 또는 권한 이름 ON 개체 TO 사용자 또는 역할 이름 CASCADE
DENY ALL 또는 권한 이름 ON 개체 TO 사용자 또는 역할 이름 CASCADE
각 문에는 다음과 같이 권한 이름, 개체 및 사용자(역할)라는 세 가지 요소가 있습니다(Ch151524Grant.sql).
전자책 사용
David에게 OBJECT::dbo.members에 대한 선택 권한 부여
OBJECT::dbo.Orders에 대한 참조 부여(MemberID)
그랜트 옵션으로 데이비드에게
위의 문은 Grant 문을 사용하여 각각 David에게 권한을 부여하지만 개체 이름은 다음과 같이 사용하십시오.
"OBJECT::"로 시작하고 그 뒤에 전체 이름이 오고 그 뒤에 소유자가 오는 것이 좋습니다. 두 번째 Grant 문은 Orders 개체에 대해 작동하는 MemberID를 나타내는 특수 개체인 "(MemberID) ON OBJECT:: dbo.Orders"에 대해 작동합니다.
필드에서 David에게 이 열에 대한 보기 권한을 부여합니다. 동시에 "WITH GRANT OPTION"을 추가한다는 것은 David가 이 권한을 다른 사람에게 부여할 수 있음을 의미하며 이는 그림 15-23의 "with grant"와 동일합니다.
Revoke 및 Deny 문에서 Cascade를 마지막에 추가할 수 있습니다. 이 키워드의 기능은 사용자가 To 이후에 다른 사람에게 부여할 수 있는 권한, 즉 "부여"를 취소하는 것입니다.
사용 가능한 권한을 확인하세요. T-SQL에서는 선택할 수 있는 옵션이 없으므로 GRANT, DENY 및
REVOKE를 수행하는 경우 권한 이름을 설정하기 전에 먼저 권한 이름을 알아야 합니다. 독자는 sys.fn_builtin_permissions를 볼 수 있습니다.
세 개의 시스템 데이터 테이블인 sys.database_permissions 및 sys.server_permissions가 그림 15-24에 나와 있습니다.
그림 15-24 사용 가능한 권한 보기 그림 15-24의 “Permission_name”은 사용 가능한 권한 이름으로 Grant, DENY 또는
진술을 취소합니다.
권한 내용 보기 현재 로그인 이름과 사용자 권한 내용을 보려면 그림 15-25와 같이 sp_helprotect 저장 프로시저를 실행하면 됩니다.
표시됩니다.
그림 15-25의 Grantee는 권한을 부여하는 사용자의 이름이고, Grantor는 다른 사람에게 권한을 부여하는 사용자의 이름입니다.
sp_helprotect 저장 프로시저 뒤에는 개체 이름, 사용자 이름, 부여자 이름을 나타내는 최대 4개의 매개 변수를 사용할 수 있습니다. 네 번째 매개 변수는 각각 쿼리 개체 권한 또는 문 권한을 나타내는 o 또는 s일 수 있습니다.