로그인 계정 & (USER)사용자 계정

1. 로그인 계정 

보안 - 로그인 을 누르면 나오는 것들이 바로 로그인 계정이다. SQL Server에 로그온 할 때 사용하는 계정을 말한다.

 

down 로그인 계정을 더블클릭 - 사용자 매핑 

down 사용자 계정을 down 데이터 베이스에 매핑된 사용자로 체크를 해 주고,

down 사용자 계정으로 로그인 후, down 데이터베이스에 있는 테이블을 SELECT 해 보았지만 SELECT 권한이 없다고 나왔다.

 그래서 위 그림과 같이 아래에 멤버 자격에 db_datareader의 자격을 주었더니 정상적으로 SELECT가 가능했다.

 

2. USER 계정

로그인 계정과 매핑이 되는 사용자 계정이 데이터베이스에 만들어져 있어야 그 데이터베이스에 접근을 할 수 있다.

위의 경우 사용자 매핑을 한 것이라 할 수 있다.

이렇게 사용자 매핑을 하게 되면 아래 그림과 같이 해당 데이터베이스에 USER가 나타나게 된다. 

Down 데이터베이스 - 보안 - 사용자에 down이라는 USER가 생겼다.

이 down이라는 USER를 더블클릭하여 일반탭을 보면 위에 사용자 매핑 과정에서 했던 대로 저장이 되어 있다.

여기서 db_accessadmin의 역할 멤버 자격을 줘봤더니 로그인 계정이 나타나는 맨아래 있는 보안 - 사용자 - down을 더블클릭하여 속성을 보아도 똑같이 db_accessadmin의 자격이 주어져 있었다.

 

결론적으로 로그인 과 사용자 두가지는 동기화가 되어 지는 것이다.

 

 궁금한 것이 몇가지 생겨서 해본 실험

 

① 실험 1 - 사용자 매핑으로 하지 않고, down 데이터베이스에서 사용자를 직접 만들며 기본스키마를 db_datareader , 권한은 db_ddladmin 으로 주어 테이블을 생성하였다.

결과 : db_datareader.table1 이라는 테이블이 생성되었다. / 하지만 datareader가 기본 스키마라고 해서 select 권한이 있는 건 아니었다. 

 

② 사용자가 소유한 스키마 부여

사용자가 소유한 스키마에 db_reader를 줘봤다(원래는 공백이었다)

결과 : 그래도 SELECT는 불가능

 

③ 사용자 - down - 더블클릭 - 보안개체 - 테이블 T에 대한 선택 권한 부여 

결과 : 이 경우에는 SELECT 가능

 

데이터베이스의 스키마를(을) 소유하며 삭제할수 없습니다.라는 오류가 나올 때

②에서 소유한 스키마를 삭제 해주어야 한다.

방법

해당 데이터베이스 - 보안 - 스키마 에서 소유한 스키마를 더블클릭 - 스키마 소유자를 스키마 이름(기본값)으로 하던지 해서 바꿔준다.

 

 

 

 

 

 

 

'MSSQL 2008 > 보안' 카테고리의 다른 글

권한 주는 방법 여러가지  (0) 2014.03.03
SELECT 권한 주는 방법 2가지와 차이점  (0) 2014.02.28
by 짱구를꼭말려 2014. 2. 28. 15:50