본문 바로가기

DB/mssql

MSSQL create database 사용 권한이 거부되었습니다 해결 법

MSSQL을 사용할때  'create database 사용 권한이 거부되었습니다' 라는 문구가 나올 때가 있습니다.

이는 해당 로그인 계정에 create 권한이 없기 때문에 발생하는 문제로 mssql을 사용하여 응용 어플리케이션에 연결 할때 등 mssql의 로그인 계정에 세팅에 관한 문제입니다.

이를 해결하기 위해서는 

1.SSMS(SQL Server Management Studio) 에 접속

2. 보안 폴더- 로그인 폴더에서 권한을 넣어줄 계정 선택

계정을 선택한다.

3.해당 계정 더블 클릭 후 좌측의 서버 역할 클릭

4. dbcreator ,public , sysadmin 체크 선택 후 확인

 

아래는 서버역할을 msdn에서 가져온 것 입니다.

sysadmin sysadmin 고정 서버 역할의 멤버는 서버에서 모든 작업을 수행할 수 있습니다.
serveradmin serveradmin 고정 서버 역할의 멤버는 서버 차원의 구성 옵션을 변경하고 서버를 종료할 수 있습니다.
securityadmin securityadmin 고정 서버 역할의 멤버는 로그인 및 해당 속성을 관리합니다. 서버 수준 사용 권한을 GRANT, DENY  REVOKE할 수 있습니다. 데이터베이스에 액세스할 수 있는 데이터베이스 수준 사용 권한도 GRANT, DENY  REVOKE할 수 있습니다. 또한 이 역할의 멤버는 SQL Server 의 로그인 암호를 다시 설정할 수 있습니다.

중요: 보안 관리자는 데이터베이스 엔진에 대한 액세스 권한을 부여하고 사용자 권한을 구성할 수 있으므로 대부분의 서버 사용 권한을 할당할 수 있습니다. securityadmin 역할은 sysadmin 역할과 동일하게 처리되어야 합니다. 또는 SQL Server 2022(16.x)부터 새 고정 서버 역할 ##MS_LoginManager##을 사용하는 것이 좋습니다.
processadmin processadmin 고정 서버 역할의 멤버는 SQL Server의 인스턴스에서 실행 중인 프로세스를 종료할 수 있습니다.
setupadmin setupadmin 고정 서버 역할의 멤버는 Transact-SQL 문을 사용하여 연결된 서버를 추가하고 제거할 수 있습니다. (Management Studio를 사용할 때 sysadmin 멤버 자격이 필요합니다.)
bulkadmin bulkadmin 고정 서버 역할의 멤버는 BULK INSERT 문을 실행할 수 있습니다.

bulkadmin 역할 또는 ADMINISTER BULK OPERATIONS 권한은 SQL Server on Linux 지원되지 않습니다. SQL Server on Linux의 경우 sysadmin만 대량 삽입을 수행할 수 있습니다.
diskadmin diskadmin 고정 서버 역할은 디스크 파일을 관리하는 데 사용됩니다.
dbcreator dbcreator 고정 서버 역할의 멤버는 데이터베이스를 생성, 변경, 삭제, 복원할 수 있습니다.
public 모든 SQL Server 로그인은 public 서버 역할에 속합니다. 서버 보안 주체에 보안 개체에 대한 특정 권한이 부여되거나 거부되지 않은 경우 사용자는 해당 개체에 대해 public 에게 부여된 권한을 상속합니다. 모든 사용자가 개체를 사용할 수 있도록 하려는 경우에만 개체에 public 권한을 할당해야 합니다. 공용의 멤버 자격은 변경할 수 없습니다.

참고:public은 다른 역할과 다른 방식으로 구현되며 public 고정 서버 역할에서 사용 권한이 부여, 거부 또는 취소될 수 있습니다.

참조: https://learn.microsoft.com/ko-kr/sql/relational-databases/security/authentication-access/server-level-roles?view=sql-server-ver16