2012-10-06 3 views

답변

3

접근 방법 1) 유용한 (데이터베이스의 모든 개체에 대한 모든 권한) 손님 (일부 테이블에 대한 모든 권한을 선택), 사용자 (만 선택, 갱신, 테이블에 삽입 권한)와 관리자를 갖고 싶어하기 때문에 큰 번호가있을 때. 사용자 수
GRANT SELECT, INSERT, DELETE, UPDATE on SCHEMA::SchemaName to Principal --often는 DBO 스키마

교장에 대한

을 위해, 당신이 몇 가지 사용자가 없다면, 그것은 일반적으로 관리를 단순화, 역할이 아닌 단일 사용자가 사용하기 FAR보다 더 낫다입니다.

이제 유틸리티 스키마가 추가되면 사용자는 데이터에 액세스 할 수 없지만 SchemaName 스키마에 테이블이 추가되면 자동으로 액세스 할 수 있습니다.

접근 방식 2) 소수의 사용자에게 유용합니다.
데이터베이스의 모든 테이블에 액세스해야하는 경우 db_datareaderdb_datawriter 역할에 사용자를 추가하십시오. 그것의 짧은 & 간단합니다.

USE [DBName] 
GO 
EXEC sp_addrolemember N'db_datawriter', N'UserName' 
GO 
EXEC sp_addrolemember N'db_datareader', N'UserName' 

참조 : http://social.msdn.microsoft.com/Forums/en/transactsql/thread/1489337c-56c9-4bb8-9875-3a75be7596be

3

내가 역할을 만들 것입니다. 또는 "손님"(즉 공개 역할) 및 관리자 (즉, db_owner 역할)로 설명하는 역할이 이미 있기 때문에 특히 하나의 역할. 그러나 그것을 현실로 만들어 봅시다.

create role [Users]; 

grant select on tbl_1, tbl2, tbl3 to [public]; 
grant select, insert, update, delete to [Users]; 

exec sp_addrolemember @membername = 'yourdomain\Users', @rolename='Users' 
exec sp_addrolemember @membername = 'yourdomain\Admins', @rolename='db_owner' 
--no need to add people to public; everyone's a member by default 
+0

나는 이해할 수 없다. 내가 guest를 guest로 추가하고 싶다면'exec sp_addrolemember 'public', 'Joe''을 쓸 필요가 있습니까? (admin -'db_owner '의 경우)? – lapots

+0

공개 된 경우, 아니요. 모두가 기본적으로 공용 역할의 구성원입니다 (데이터베이스에 사용자로 추가해야하지만). 하지만 예, 관리자 사용자의 경우 db_owner 역할에 추가 할 수 있습니다. 사용자를 관리하는 것보다 사용자로 추가 할 수있는 AD 그룹이 있기를 바랍니다. –