【Data Platform】/SQL Server

[2k5] 사용자 및 역할, 스키마 생성

디비랑 2008. 9. 7. 15:59

/**********************************************************************************************
-- Title : [2k5] 사용자 및 역할, 스키마 생성
-- Reference : hanbitbook.co.kr
-- Key word : create login user alter authorization schema sp_addrolemember grant 사용자 역할
**********************************************************************************************/
use master;
go
 
--sql 로그인 등록
create login newuser3
with password = 'p@ssw0rd',
  default_database = [sqldb],
  check_policy = on,
  check_expiration = off;
create login newuser4
with password = 'p@ssw0rd',
  default_database = [sqldb],
  check_policy = on,
  check_expiration = off;
create login newuser5
with password = 'p@ssw0rd',
  default_database = [sqldb],
  check_policy = on,
  check_expiration = off;
go
 
--사용자 등록
use sqldb;
go
 
create user newuser3 for login newuser3;
create user newuser4 for login newuser4;
create user newuser5 for login newuser5;
go
 

/*
-- test_role 생성
*/
--newuser3을 소유로 하는 역할 생성
create role [test_role] authorization [newuser3];
go
 
--db_datareader 스키마의 소유권을 test_role에 이전
alter authorization on schema::[db_datareader] to [test_role];
go
 
--test_role에 newuser4,5 멤버 추가
exec sp_addrolemember 'test_role', 'newuser4';
exec sp_addrolemember 'test_role', 'newuser5';
go
 
 
/*
-- test_role2 생성
*/
use sqldb;
go
 
--newuser3을 소유로 하는 역할 생성
create role [test_role2] authorization [newuser3];
go
 
--db_ddladmin 스키마의 소유권을 test_role2에 이전
alter authorization on schema::[db_ddladmin] to [test_role2];
go
 
--test_role2에 newuser4,5 멤버 추가
exec sp_addrolemember N'test_role2', N'newuser4';
exec sp_addrolemember N'test_role2', N'newuser5';
go
 
--test_role2에 buytbl에 alter/control/select 권한 부여
grant alter on [dbo].[buytbl] to [test_role2];
grant control on [dbo].[buytbl] to [test_role2];
grant select on [dbo].[buytbl] to [test_role2];
go
 

/*
-- test_role3 생성(단순 역할 생성 및 멤버 추가)
*/
use sqldb;
go
 
create role [test_role3];
go

exec sp_addrolemember N'test_role3', N'newuser4';
exec sp_addrolemember N'test_role3', N'newuser5';
go