2013-05-15 2 views
-1

사용자 (d2user)가이 사용자의 역할 만 읽고 쓰기가 가능하므로 sys proc를 사용하여 db_datareaderdb_datawriter 역할을 추가했습니다.사용자에게 스키마 변경 권한을 허용하지 않습니다.

그러나이 사용자로 로그인하면이 사용자가 소유 한 테이블 스키마를 변경할 수 있습니다.

작동하지 않아야하는 곳에서 완벽하게 작동합니다.

ALTER SCHEMA guest TRANSFER dbo.TestData; 
GO 

내가 사용을 제한하려고 :

내가 잘못된 구문 오류를 얻고있다 운이 사용자는 아직 .. 할 수있는 누군가의 도움 PLSS을 스키마를 변경할 수 없습니다 그러나
REVOKE Alter any schema ON ROLE::db_datareader FROM d2user CASCADE; 

? 그들이 가지고 있기 때문에

답변

0

사용자는 ALTER 권한이 중 하나

  • db_ddl_admin
  • 대한 db_owner
  • 시스템 관리자 당신은 ddl_admin을 취소 할 수 있지만, 다른 2 항상가 권한을해야합니다

변경 사항

o와 함께 역할 사용 권한을 확인할 수 있습니다.

EXEC sp_helprolemember; -- uses sys.database_role_members if you prefer to query this 
EXEC sp_helpsrvrolemember; 
+0

사용자에게는 sysadmin이 있지만 다른 두 사람은 없습니다. 나는 sysadmin의 선택을 취소해도 데이터베이스 객체를 볼 수 없다. 노드는 탐색하지 않는다. – mmssaann

+0

sysadmin을 사용하면 SQL Server를 완전히 제어 할 수 있습니다. 이것을 제거하면 데이터베이스에서 GRANT VIEW DEFINITION을 사용하여 부여한 것만 볼 수있는 권한이 있습니다. – gbn

+0

sysadmin이 제거되었습니다. 실행 - GRANT ANY VIEW DEFINITION Publilc에 - 여전히 객체를 볼 수 없습니다. – mmssaann

관련 문제