2011-02-26 4 views
1

Windows 인증 (Admin)으로 SQL Server에 연결했습니다.SQL Server 2005 Express에서 로그인, 사용자 및 사용 권한을 사용합니다.

CREATE LOGIN bob WITH PASSWORD = 'bobpass'. 

지금, 내가 다시 다음 SQL 서버 & 폐쇄 & 내가 로그인 '밥'과 연결이 시간을 열 :

다음, 나는 나의 SQL 서버 2005 익스프레스에 대한 로그인을 만들었습니다. 손님 왜 그렇게

: SELECT CURRENT_USER.

그것은 출력을 주었다

지금, 나는이 실행?

bob 로그인 내에 어떤 사용자도 만들지 않았기 때문에 이것이 발생 했습니까?

답변

3

CURRENT_USER는 데이터베이스 보안 주체 (사용자)를 반환합니다. bob은 서버 보안 주체 (로그인)입니다. 데이터베이스에 대한 액세스 권한을 부여하지 않았고 bob을 기본 제공 서버 보안 그룹에 추가하지 않은 경우 master 및 tempdb를 제외한 모든 데이터베이스에 액세스 할 수 없습니다. 이 두 데이터베이스에서 그는 guest으로 인식됩니다. 이 기본값이 새로 설치에서 변경된 경우 (예 : bobguest을 사용 가능으로 설정했기 때문에 더 많은 데이터베이스에 대한 액세스 권한을 가질 수 있음)이 설명과 다른 점을 알 수 있습니다.

그래서 기본적으로 바로 짐작 : 그가 명시 적 데이터베이스 교장 (AN 사용자)가없는도 sysadmin의 그 멤버 (이 경우 그는 모든 데이터베이스에 dbo을 것) 때문에 bobguest입니다.

+0

bob 로그인 용 bobuser를 만든다면 고맙습니다. 선생님, bobuser로 사용자 이름을 사용하는 sql 서버에 연결할 수 있습니다. – sqlchild

+0

또한 질문이 있습니다. http://stackoverflow.com/questions/ 5117029/logins-users-permissions-in-sql-express-2005-with-diagram-flowcharts – sqlchild

+0

각하, sysadmin 역할을 bob에 부여하면 모든 데이터베이스의 dbo가됩니다. 즉, 사용자가 로그인시 자동으로 생성된다는 의미입니다. 밥, dbo라는? – sqlchild

관련 문제