ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 로그인 계정 및 데이터베이스 사용자 계정 확인
    MSSQL/운영 2019. 2. 8. 15:11

    1. 로그인 계정이란?

    SQL Server에 로그온할 때 사용하는 계정을 말합니다.

    서버에 로그온할 자격만을 제시할 뿐, 데이터베이스에 접근할 수 있는것은 아닙니다.

    Type_Desc 열을 보시면 SQL_LOGIN 으로 되있는 Member 는 SQL Server에 로그인이 될 뿐이지, 데이터베이스에 접근할 권한은 가지고있지 않습니다.

    master 시스템 데이터베이스에 저장됩니다.


    SELECT Roles.Name, Roles.Type_Desc, Members.Name MemberName, Members.Type_Desc

    FROM sys.server_role_members RoleMembers

    INNER JOIN sys.server_principals Roles ON Roles.Principal_Id = RoleMembers.Role_Principal_Id

    INNER JOIN sys.server_principals Members ON Members.Principal_Id = RoleMembers.Member_Principal_Id

    where Members.name not like '%system%' 

          and Members.name not like '%SQLServer%' 




    2. 데이터베이스 사용자 계정이란?

    특정 데이터베이스에 접근할 때 로그인 계정과 매핑되는 계정입니다.

    MDesc 열을 보시면 SQL_USER 으로 되있는 Member 는 권한을 준 해당 데이터베이스에 접근할 수 있을 뿐이지, 데이터베이스에 로그온할 권한을 가지고있지는 않습니다.

    접근 권한을 준 해당 데이터베이스에 저장됩니다.


     SELECT @@Servername as ServerName, db_name() as DBName,Roles.Name, Roles.Type_Desc as RDesc, Members.Name MemberName, Members.Type_Desc as MDesc

    FROM sys.database_role_members RoleMembers

    INNER JOIN sys.database_principals Roles ON Roles.Principal_Id = RoleMembers.Role_Principal_Id

    INNER JOIN sys.database_principals Members ON Members.Principal_Id =RoleMembers.Member_Principal_Id



    MemberName 이 [raondataAdmin] 이라는 사용자는 SQL_USER 입니다.

    즉 권한을 준 해당 데이터베이스에 접근할 권함을 가지고 있습니다.

    권한을 준 해당 데이터베이스[pubs] 의 사용자들을 보겠습니다.


    데이터베이스[pubs] 에서 보안 -> 사용자를 보시면 MemberName 이 [raondataAdmin] 사용자가 있는것을 확인하실 수 있습니다.


    'MSSQL > 운영' 카테고리의 다른 글

    SampleData(WideWorldImporters) 가져오기  (0) 2018.04.20
    OLTP 와 OLAP  (0) 2018.04.20
    windows 10 에서 mssql 2016 설치  (0) 2018.04.20
    mssql 2016 service pack(sp1) 설치  (0) 2018.04.19
    windows 2008 에서 mssql 2005 설치  (0) 2018.04.18

    댓글

Designed by Tistory.