데이터베이스 단위로 권한 부여
--Example
-- DB 명 : TEST_DB
-- Account : test_acc
use [TEST_DB]
GO
-- 권한 부여
GRANT SELECT TO [test_acc]
GRANT ALTER TO [test_acc]
GRANT DELETE TO [test_acc]
GRANT UPDATE TO [test_acc]
GRANT INSERT TO [test_acc]
GRANT CREATE TABLE TO [test_acc]
GO
-- 권한 제거
DENY UPDATE TO [test_acc]
DENY DELETE TO [test_acc]
스키마 단위로 권한 부여
--Example
-- DB 명 : TEST_DB
-- 스키마 : dbo
-- Account : test_acc
USE [TEST_DB]
GO
CREATE USER [test_acc] FOR LOGIN [test_acc] WITH DEFAULT_SCHEMA=[dbo]
GRANT CONNECT TO test_acc AS [dbo]
GRANT SELECT TO test_acc AS [dbo]
GRANT DELETE TO test_acc AS [dbo]
GRANT UPDATE TO test_acc AS [dbo]
GRANT EXECUTE TO test_acc AS [dbo]
GRANT VIEW DEFINITION TO test_acc AS [dbo]
GO
지정 SP에 권한 부여
--Example
--DB 명 : TEST_DB
-- SP명 : sp_TEST_update
-- Account : Test_Acc
USE [TEST_DB]
GO
grant execute on sp_TEST_update to Test_Acc
GO
일부 DB만 DB 리스트에 보여지도록
-- Database 소유자를 제외하고 DB 리스트가 보이지 않게 하는 형식
--Example
-- DB 명 : TEST_DB
-- Account :
---- TEST_Service : Database 리스트에 'TEST_DB' DB 확인 불가
---- TEST_Admin : Database 리스트에 'TEST_DB' DB 확인 가능
USE [master]
GO
alter authorization on database::TEST_DB to TEST_Admin;
deny VIEW ANY DATABASE TO TEST_Service;
GO