티스토리 뷰

   

관리 실수(?)로 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 역할을 확인합니다.

댓글
글 보관함
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday