저는 SQL Sever의 데이터베이스 권한 관리 분야에서 매우 친환경적입니다.

예를 들어 보겠습니다. 간단합니다.

“admin”계정이 스키마 A, B 및 C의 소유자라고 말합니다.

전체 권한 (업데이트 / 삭제)을 원하는 다른 계정 “minion”이 있습니다. / insert / select / alter) 스키마 A, B 및 C에서 생성 된 모든 객체 (테이블 / 뷰)에 대한 것입니다.

가능합니까? 아니면 이러한 스키마 아래에 테이블 / 뷰를 추가 할 때마다 grant 문을 실행해야합니까? (조금 어리석은 것 같습니다.)

답변

GRANT 기존의 모든 및 해당 스키마에 존재할 모든 항목에 유효한 스키마 권한.

스키마 권한 부여

GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: <schema> TO <user>; 

또한 특정 권한에 대한 권한을 거부하려는 경우 개체 권한을 거부 할 수 있습니다.

개체 권한 거부

DENY INSERT ON OBJECT::<schema>.<object> TO <user>; 

설명

  • 스키마 또는 사용자 이름에 특수 문자가있는 경우에도 대괄호를 사용합니다. 예 : .... SCHEMA :: [schema] TO [company-name/joshua.duxbury]
  • Azure에서 작동하지 않는 ' 이유를 아십니까? (명령은 작동하지만 SSMS가 나타나고 " Db 소유자가 아닙니다 .. blah blah blah. 테이블을 저장하지 못할 수도 있습니다. " 확실히 할 수 있습니다. ' t (데이터베이스에 모두 권한 부여 (' 데이터베이스 ', ' < db 이름 > ', TheUserId, ' 테이블 만들기 ' 및 GRANT ') 필요한 다른 마법이 있습니까? 아니면 Dbo에서만 Azure를 사용할 수 있습니까?

답변

좀 더 단순화하기 위해 역할을 사용하여 원하는 작업을 수행 할 수 있습니다.

지정한 후에는 역할에 대한 권한이있는 경우 사용자를 역할에 추가하기 만하면됩니다. 이렇게하면 개별 사용자의 권한을 관리 할 필요가 없습니다. 사용자는 역할에 부여 된 권한을 상속합니다.

다음은 시작하는 예입니다.

 -- Create the database role CREATE ROLE TableSelector AUTHORIZATION [dbo] GO ---- Grant access rights to a specific schema in the database GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON SCHEMA::dbo TO TableSelector GO -- Add an existing user to the new role created EXEC sp_addrolemember "TableSelector", "MyDBUser" GO -- Revoke access rights on a schema from a role DENY ALTER -- you can customize here ... ON SCHEMA::dbo TO TableSelector 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다