권한 스태킹 거부 권한 부여


9

역할 의 경우 customer 테이블의 열 코드 SELECTable이 가능하고 다른 코드는 db_denycustomer원하지 않습니다. 그래서 나는 이것을했다 :

DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer

... 그리고 잘 작동합니다. 멋있는! 그런데 ?

관련 기사에서 읽은 것은 사용 권한 스택이지만 DENY우선합니다. 반대로, 내 경우에는 마지막 권한 "query"가 우선하는 것 같습니다. 물론, 그것들을 역순으로 실행하면 후자 DENY가 코드 열을 숨 깁니다.

이것에 대해 자세히 설명해 주시겠습니까?

또한 테스트 한 사용자에게 기본 db_datawriterdb_datareader역할을 포함 시켰습니다 .

답변:


10

이되는 행동을 문서화 이전 버전과의 호환성을 제공합니다. 문서 발췌 :

주의 테이블 수준 DENY는 열 수준 GRANT보다 우선하지 않습니다. 권한 계층 구조의 이러한 불일치는 이전 버전과의 호환성을 위해 유지되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.