모든 테이블에 대한 읽기 액세스를 허용하는 데이터베이스 역할을 작성하십시오. 일부에 대한 쓰기 권한


9

1000 개가 넘는 테이블이있는 데이터베이스가 있습니다. 모든 테이블에서 읽기 전용 권한을 부여하고 두 개의 특정 테이블에 대한 쓰기 권한을 부여하는 역할을 만들어야합니다.

데이터베이스 역할을 망쳐 놓았지만 테이블을 추가 할 때마다 1000을 모두 선택해야했습니다 ...이 작업을 수행하는 더 좋은 방법이 있습니까?


실제로 가장 간단한 방법 일 수 있습니다 ... 스크립트를 작성하는 방법이 있습니까? 이러한 데이터베이스 중 하나를 새로 고칠 때마다 일련의 스크립트를 유지해야합니다. 모든 설정을 즉시 되돌릴 수 있습니다.
Wes

답변:


9

스키마 (예 :)에 대한 권한을 부여하면 해당 스키마의 dbo모든 개체에 캐스케이드됩니다. 개별 예외의 경우 다음을 명시 적으로 나열 할 수 있습니다.

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
충분히 쉽다. 우리는 이와 같은 커뮤니티를 가지고 있습니다.
Wes

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