티스토리 뷰
관리 실수(?)로 sysadmin 역할을 모두 제거했을 때 조치방법입니다.
↓ 다시 sysadmin을 추가하려고 할때 발생하는 오류(Error: 15247)
------상황재현---------------------------------------------------------------------------------------
-- sysadmin 서버역할의 멤버 조회
-- 실제로 데이터베이스에 연결할 수 있는 로그인은 sa, HYSQL-01\Administrator, HYSQL-01\hypark 세개입니다.
EXEC sp_helpsrvrolemember 'sysadmin'
-- 테스트를 위해 sysadmin 역할을 제거합니다.
-- sa는 sysadmin 고정역할에서 제거할 수 없다고 하여 로그인을 Disable 하였습니다.
EXEC master..sp_dropsrvrolemember @loginame = N'HYSQL-01\Administrator', @rolename = N'sysadmin'
GO
EXEC master..sp_dropsrvrolemember @loginame = N'HYSQL-01\hypark', @rolename = N'sysadmin'
GO
ALTER LOGIN [sa] DISABLE
GO
-- sysadmin 역할은 모두 제거되었고 sa는 Disable 상태입니다.
-- sysadmin 역할을 제거한 로그인으로 접속 후 서버역할을 변경하려고 해도 권한부족으로 실패합니다.
-- 더 이상 어떤 로그인으로도 SQL Server 인스턴스를 관리할 수 없는 상태가 되었습니다.
------복구방법---------------------------------------------------------------------------------------
아래 방법으로 sysadmin 역할을 복구할 수 있습니다.
방법 1. 최소구성으로 SQL Server 시작 후 sysadmin 복구
-- cmd를 관리자모드로 실행하고, SQL 인스턴스가 설치된 디렉터리로 이동한 뒤 서비스를 최소구성으로 다시 시작합니다.
-- 최소구성으로 시작하면 단일사용자모드로 자동 전환됩니다.
-- cmd를 관리자모드로 하나 더 열어서 sqlcmd로 인스턴스에 접속합니다.
-- 접속이 되면 원하는 로그인 개체에 sysadmin 서버역할을 부여합니다.
EXEC master..sp_addsrvrolemember @loginame = N'HYSQL-01\hypark', @rolename = N'sysadmin'
GO
-- SQL Server를 최소구성으로 시작했던 cmd창으로 돌아와 SQL Server를 종료합니다.
-- 방법: Ctrl+C 입력 후 Y를 선택하면 SQL Server가 종료됩니다.
-- SQL Server 인스턴스를 일반모드로 시작합니다.
-- ssms로 SQL 연결 후 부여된 sysadmin 역할을 확인합니다.
'Microsoft SQL Server' 카테고리의 다른 글
SQL Server 2014 CPT1 설치 스크린샷 (0) | 2014.01.07 |
---|---|
MSSQL 읽기 전용(Read-Only) 데이터베이스 (0) | 2014.01.02 |
SQL Server 2005 Express Edition 서비스팩 업그레이드 (0) | 2013.12.24 |
MSSQL 로그인 Server Role 확인 (0) | 2013.12.20 |
MSSQL Column Level(열 단위) 암호화 (0) | 2013.12.19 |