Microsoft SQL Server 인스턴스에 로그인하려면 사용자는 유효한 SQL Server 로그인이 있어야 합니다. 이 로그인은 보안 주체가 SQL Server 인스턴스에 연결할 수 있는지 여부를 확인하는 인증 프로세스에 사용됩니다. 서버 인스턴스의 SQL Server 로그인은 sys.server_principals 카탈로그 뷰 및 sys.syslogins 호환성 보기에 표시됩니다.
SQL Server 로그인은 SQL Server 로그인에 매핑된 데이터베이스 사용자를 사용하여 개별 데이터베이스에 액세스합니다. 이 규칙에는 두 가지 예외가 있습니다.
게스트 계정입니다.
데이터베이스에서 사용하도록 설정하면 데이터베이스 사용자에 매핑되지 않은 SQL Server 로그인이 게스트 사용자로 데이터베이스를 입력할 수 있도록 하는 계정입니다.
Microsoft Windows 그룹 멤버 자격.
Windows 사용자가 데이터베이스의 사용자인 Windows 그룹의 구성원인 경우 Windows 사용자로부터 만든 SQL Server 로그인은 데이터베이스를 입력할 수 있습니다.
데이터베이스 사용자에 대한 SQL Server 로그인 매핑에 대한 정보는 데이터베이스 내에 저장됩니다. 여기에는 데이터베이스 사용자의 이름과 해당 SQL Server 로그인의 SID가 포함됩니다. 이 데이터베이스 사용자의 권한은 데이터베이스의 권한 부여에 사용됩니다.
해당 SQL Server 로그인이 정의되지 않거나 서버 인스턴스에서 잘못 정의된 데이터베이스 사용자는 인스턴스에 로그인할 수 없습니다. 이러한 사용자는 해당 서버 인스턴스에서 데이터베이스의 분리된 사용자 라고 합니다. 해당 SQL Server 로그인을 삭제하면 데이터베이스 사용자가 분리될 수 있습니다. 또한 데이터베이스를 복원하거나 다른 SQL Server 인스턴스에 연결한 후 데이터베이스 사용자가 분리될 수 있습니다. 데이터베이스 사용자가 새 서버 인스턴스에 없는 SID에 매핑되는 경우 분리가 발생할 수 있습니다.
비고
SQL Server 로그인은 해당 데이터베이스에서 게스트 를 사용하도록 설정하지 않는 한 해당 데이터베이스 사용자가 없는 데이터베이스에 액세스할 수 없습니다. 데이터베이스 사용자 계정을 만드는 방법에 대한 자세한 내용은 CREATE USER(Transact-SQL)를 참조하세요.
고아화된 사용자를 검색하려면
고아 상태 사용자를 검색하려면 다음 Transact-SQL 문을 실행하십시오.
USE <database_name>;
GO;
sp_change_users_login @Action='Report';
GO;
출력에는 SQL Server 로그인에 연결되지 않은 현재 데이터베이스의 사용자 및 해당 SID(보안 식별자)가 나열됩니다. 자세한 내용은 sp_change_users_login(Transact-SQL)를 참조하세요.
비고
sp_change_users_login Windows에서 만든 SQL Server 로그인과 함께 사용할 수 없습니다.
고아 사용자 계정을 해결하려면
고아 사용자를 해결하려면 다음 절차를 사용하십시오.
다음 명령은 <login_name>으로 지정된 서버 로그인 계정을 <database_user>으로 지정된 데이터베이스 사용자와 다시 연결합니다.
USE <database_name>; GO sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', @LoginName='<login_name>'; GO자세한 내용은 sp_change_users_login(Transact-SQL)를 참조하세요.
이전 단계에서 코드를 실행한 후 사용자는 데이터베이스에 액세스할 수 있습니다. 그러면 사용자는 다음과 같이 sp_password> 저장 프로시저를 사용하여 login_name 로그인 계정의< 암호를 변경할 수 있습니다.
USE master GO sp_password @old=NULL, @new='password', @loginame='<login_name>'; GO중요합니다
ALTER ANY LOGIN 권한이 있는 로그인만 다른 사용자의 로그인 암호를 변경할 수 있습니다. 그러나 sysadmin 역할의 멤버만 sysadmin 역할 멤버의 암호를 수정할 수 있습니다.
비고
microsoft Windows 계정에는 sp_password 사용할 수 없습니다. Windows 네트워크 계정을 통해 SQL Server 인스턴스에 연결하는 사용자는 Windows에서 인증됩니다. 따라서 해당 암호는 Windows에서만 변경할 수 있습니다.
자세한 내용은 sp_password(Transact-SQL)를 참조하세요.
또한 참조하십시오
CREATE USER(Transact-SQL)
CREATE LOGIN(Transact-SQL)
sp_change_users_login(Transact-SQL)
sp_addlogin(Transact-SQL)
sp_grantlogin(Transact-SQL)
sp_password(Transact-SQL)
sys.sysusers(Transact-SQL)
sys.syslogins(Transact-SQL)