DBMS/MSSQL

[MSSQL] 로그인, 사용자, 사용권한, 역할

이제이b 2020. 5. 29. 11:59

[MS-SQL] ▣ 로그인, 사용자, 사용권한, 역할

 

  • 로그인

    - SQL Server에 접속할 수 있는 것을 말함

    - Windows 'administrator' = '컴퓨터이름\Administrator'

    - 'Administrator' 그룹의 사용자들= 'BUILTIN\Administrators'

    - 'sa'는 디폴트로 사용할 수 없게 되어있지만 하위 버전과의 호환성을 위해 남겨둠

     

  • 사용자

    - 데이터베이스 관리자는 각 데이터베이스마다 접근할 수 있는 사용자를 각각 지정함

    - 디폴트로 'dbo', 'guest', 'INFORMATION_SCHEMA', 'sys'가 있음

     

    dbo 사용자 : 데이터베이스 소유자 (Database Owner). 기본적으로 생성자가 소유자가 됨.

    guest 사용자 : 모든 로그인에 대해서 자동적으로 데이터베이스에 접근이 허용된 사용자.

    sys INFORMATION_SCHEMA : 데이터베이스 내부의 시스템 개체를 참조하기 위한 사용자.

     

    새로운 로그인 사용자를 데이터베이스 사용자로 추가하기 위한 구문 형식

    CREATE USER user_name [

    { { FOR | FROM }

    {

    LOGIN login_name

    | CERTIFICATE cert_name

    | ASYMMETRIC KEY asym_key_name

    }

    | WITH LOGIN

    ]

    [ WITH DEFAULT_SCHEMA = schema_name ]

    ※ 변경은 ALTER USER, 삭제는 DROP USER를 사용

     

  • 사용권한

    - 개체를 사용하거나 명령문을 수행하는 권한

    - 권한 부여는 CREATE, 권한 거부는 DENY, 부여된 권한의 제거는 REVOKE문을 사용

     

    개체 사용권한 : 데이터베이스 개체에 대해 SELECT, INSERT, UPDATE, DELETE 등을 수행할 수 있는 권한.

    문 사용권한 : 특정한 명령문을 수행할 수 있는 권한. CREATE TABLE, CREATE VIEW, BACKUP DATABASE .

    내제적 사용권한 : 명시적으로 사용권한을 부여하지 않더라도 암시적으로 부여된 사용권한.

     

  • 역할(Role)

    - 사용자 또는 로그인의 집합, 권한의 집합

    - 사용자 또는 로그인 집합에서는 해당하는 역할에 사용자나 로그인을 멤버로 포함시킴

    - 권한의 집합은 여러개의 권한을 하나로 묶은 후 사용자에게 역할을 부여하는 개념

     

    고정 서버 역할 : 서버를 관리하는 권한의 집합

     

역할

설명

bulkadmin

BULK INSERT 문을 실행할 수 있음

dbcreator

데이터베이스를 생성, 변경, 삭제 복원할 수 있음

diskadmin

디스크 파일을 관리할 수 있음

processadmin

SQL Server의 인스턴스에서 실행되는 프로세스를 종료할 수 있음

securityadmin

로그인 및 해당 속성을 관리함. 서버 수준과 데이터베이스 수준의

사용 권한을 부여(GRANT), 거부(DENY), 취소(REVOKE)할 수 있음

serveradmin

서버 차원의 구성 옵션을 변경하고 서버를 종료할 수 있음

setupadmin

연결된 서버를 추가하거나 제거하고 일부 시스템 저장프로시저를

실행할 수 있음

sysadmin

서버에서 모든 작업을 수행할 수 있음

 

 

고정 서버역할에 로그인을 멤버로 포함시키기 위한 저장프로시저 명령

EXEC sp_addsrvrolemember '로그인이름' , '역할이름'

고정 데이터베이스 역할

 

역할

설명

db_accessadmin

Windows 로그인, Windows 그룹 및 SQL Server 로그인에 대한 액세스를 추가, 제거할 수 있음

db_backupoperator

데이터베이스를 백업할 수 있음

db_datareader

사용자 테이블의 모든 데이터를 읽을 수 있음

db_datawriter

사용자 테이블에서 데이터를 추가, 삭제, 변경할 수 있음

db_ddladmin

데이터베이스에서 모든 DDL(데이터 정의어) 명령을 실행할 수 있음

db_denydatareader

데이터베이스 내에 있는 사용자 테이블의 데이터를 읽을 수 없음

db_denydatawriter

데이터베이스 내의 사용자 테이블의 데이터를 추가, 수정, 삭제할 수 없음

db_owner

데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있음

db_secutiryadmin

멤버 자격을 수정하고 사용권한을 관리할 수 있음

public

모든 데이터베이스 사용자에게 디폴트로 부여되는 최소 권한을 갖는 역할

 

 

고정 데이터베이스 역할에 사용자를 멤버로 포함시키기 위한 저장프로시저 명령

EXEC sp_addrolemember '역할이름' , '데이터베이스 사용자이름'