SQL Server 2012 사용자 정의 서버 역할 만들기
- 서버 역할을 지정하여 접근 제어 하기
- Version : SQL Server 2012
SQL Server 2012에서 사용자 정의 서버 수준 역할을 만들어 본다.
아래 스크립트를 사용하여 SQL Server 로그인 계정을 생성 한다.
USE [master] GO CREATE LOGIN [Test] WITH PASSWORD=N'Test!@#$', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO |
서버 역할을 생성 한다. 개체 탐색기에서 [보안] – [서버 역할]에서 마우스 오른쪽을 클릭하여 [새 서버 역할]을 선택 한다.
새 서버 역할에서 아래 그림과 같이 설정 한다.
멤버 페이지에서 추가 버튼을 사용하여 새로운 서버 역할에 로그인을 추가한다.
멤버 자격에서 아래 그림과 같이 기본 값으로 설정한 다음 [확인]을 클릭 한다.
T-SQL을 사용하여 사용자 정의 역할을 생성하려면 다음 스크립트를 실행 한다.
USE [master] GO CREATE SERVER ROLE [LevelOneDBAs] AUTHORIZATION [sa] GO ALTER SERVER ROLE [LevelOneDBAs] ADD MEMBER [Test] GO GRANT VIEW ANY DATABASE TO [LevelOneDBAs] GO GRANT VIEW SERVER STATE TO [LevelOneDBAs] GO |
새로 생성한 서버 역할에 대한 권한을 확인해 보자. L1DBAs 로그인 계정은 VIEW SERVER STATE 권한이기 때문에 백업이나 셧다운 명령을 실행 할 수는 없지만 DMV 결과는 볼 수 있다.
/* Since you don't have permission to backup database the script should fail */ BACKUP DATABASE AdventureWorks2012 TO DISK = 'C:\SQL_Backup\AdventureWorks2012.BAK' GO /* Since you don't have the permission to shutdown the instance the script should fail */ SHUTDOWN GO /* Since you have VIEW SERVER STATE PERMISSION you will be able to see the results */ SELECT * FROM SYS.dm_exec_requests WHERE session_id > 50 GO |
사용자 정의 서버 역할을 활용하여 사용자 계정에 따른 역할을 제어하여 보안등에 활용하면 좋을 듯 하다.
[참고자료]
2014-01-28 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SQL Server 2016 동적 데이터 마스킹 (0) | 2015.07.23 |
---|---|
SQL Server 2012 Contained Database (0) | 2015.07.23 |
SQL Server 2012 데이터 변환 함수 - PARSE, TRY_PARSE, TRY_CONVERT (0) | 2015.07.23 |
SQL Server 2012 논리 함수(IIF, CHOOSE) (0) | 2015.07.23 |
SQL Server 2012 새로운 날짜 및 시간 함수 (0) | 2015.07.23 |