IT/SQLD

로그인 계정 및 데이터베이스 사용자 계정 확인

알콩달콩아빠 2023. 4. 4. 21:43
728x90
반응형

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] 사용자가 있는것을 확인하실 수 있습니다.

 

출처 : 로그인 계정 및 데이터베이스 사용자 계정 확인 :: (tistory.com)

728x90
반응형