SQL Server 사용자 매핑 오류 15023
는 제 다른 .
> > > Properties > Mapping > DB > 를 한 후 ok 라고 하는 합니다.
사용자, 그룹 또는 역할 'someuser'이(가) 현재 데이터베이스에 이미 있습니다.(Microsoft SQL Server, 오류: 15023)
오류의 원인은 무엇이며 사용자를 데이터베이스에 어떻게 매핑합니까?
사용자 및 로그인 매핑을 수정하려면 SQL Server Management Studio에서 쿼리 창을 열어야 합니다.다음 두 줄을 입력하고 myDB를 데이터베이스 이름으로 바꾸고 myUser를 올바른 사용자 이름으로 바꿉니다.
USE myDB
EXEC sp_change_users_login 'Auto_Fix', 'myUser'
성공적으로 실행되면 다음과 같은 출력이 표시됩니다.
The row for user '****' will be fixed by updating its login link to a login already in existence.
The number of orphaned users fixed by updating users was 1.
The number of orphaned users fixed by adding new logins and then updating users was 0.**
이제 사용자가 올바르게 매핑되었습니다.
편집:
고립된 사용자를 해결하는 새로운 방법:
마스터 데이터베이스에서 SID 옵션과 함께 CREATE LOGIN 문을 사용하여 누락된 로그인을 다시 생성하여 데이터베이스 사용자의 SID를 제공합니다.
CREATE LOGIN <login_name>
WITH PASSWORD = '<use_a_strong_password_here>',
SID = <SID>;
고립된 사용자를 마스터에 이미 있는 로그인에 매핑하려면 사용자 데이터베이스에서 로그인 이름을 지정하여 ALTER USER 문을 실행합니다.
ALTER USER <user_name> WITH Login = <login_name>;
누락된 로그인을 재생성할 때 사용자는 제공된 암호를 사용하여 데이터베이스에 액세스할 수 있습니다.그런 다음 ALTER LOGIN 문을 사용하여 로그인 계정의 암호를 변경할 수 있습니다.
ALTER LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
한 명 또는 두 명의 사용자만 사용하는 경우 가장 쉬운 방법은 복원된 데이터베이스에서 데이터베이스 사용자를 삭제하고 SSMS를 사용하여 데이터베이스 사용자를 서버 로그인에 재매핑하는 것입니다.서버 로그인이 존재하지 않는 경우, 로그인을 작성하고 사용자를 매핑합니다.
옵션 2: 많은 수의 사용자를 마이그레이션하는 경우 sp_help_revlogin을 사용합니다.sp_help_revlogin은 Microsoft에서 제공하는 저장 프로시저로, 암호 및 SID를 포함하여 한 서버에서 다른 서버로 로그인을 마이그레이션하는 데 도움이 됩니다.SP_HELP_REVLOGIN에 대한 좋은 기사가 있습니다. http://www.databasejournal.com/features/mssql/article.php/2228611/Migrating-Logins-from-One-SQL-Server-to-Another.htm
이를 사용하는 데 도움이 되는 코드 패치: Query Analyzer의 T-SQL Query를 따라 실행합니다.결과 창에서 데이터베이스의 모든 기존 사용자를 반환합니다.
USE YourDB
GO
EXEC sp_change_users_login 'Report'
GO
로그인을 사용자 이름과 연결하려면 Query Analyzer에서 다음 T-SQL Query를 실행합니다.'Auto_Fix' 특성은 SQL Server 인스턴스가 없는 경우 사용자를 만듭니다.다음 예에서 'ColdFusion'은 UserName이고 'cf'는 Password입니다.자동 수정 기능은 현재 데이터베이스의 sysusers 테이블에 있는 사용자 항목을 sysxlogins에 있는 동일한 이름의 로그인에 연결합니다.
USE YourDB
GO
EXEC sp_change_users_login 'Auto_Fix', 'ColdFusion', NULL, 'cf'
GO
로그인을 사용자 이름과 연결하려면 Query Analyzer에서 다음 T-SQL Query를 실행합니다.'업데이트_하나'는 현재 데이터베이스의 지정된 사용자를 연결하여 로그인합니다.로그인이 이미 존재해야 합니다.사용자 및 로그인을 지정해야 합니다.암호가 NULL이거나 지정되지 않아야 합니다.
USE YourDB
GO
EXEC sp_change_users_login 'update_one', 'ColdFusion', 'ColdFusion'
GO
로그인 계정에 다른 사용자를 삭제할 수 있는 권한이 있는 경우 쿼리 분석기에서 T-SQL을 실행합니다.사용자가 삭제됩니다.
USE YourDB
GO
EXEC sp_dropuser 'ColdFusion'
GO
오류 없이 데이터베이스에 동일한 사용자를 다시 만듭니다.
먼저 데이터베이스에 매핑하지 않고 데이터베이스 사용자에게 권한을 할당하면 사용자가 언급한 오류가 발생합니다.
사용자를 삭제하고 데이터베이스에 매핑한 다음 사용자를 db_owner 역할에 할당할 수 있습니다.
먼저 사용자를 삭제한 후 아래 스크립트를 실행합니다.
USE [YOURDB]
GO
CREATE USER [USERNAME] FOR LOGIN [USERNAME]
GO
USE [YOURDB]
GO
ALTER USER [USERNAME] WITH DEFAULT_SCHEMA=[dbo]
GO
프로덕션 데이터베이스를 로컬 테스트 데이터베이스에 복사할 때 문제가 발생했습니다.SSMS에서는 로컬에서 스크립트를 실행하기 전에 프로덕션 서버와의 연결을 끊었습니다.그런데 연결이 끊겼다고 생각했는데도 누군가 생산 데이터베이스의 제목이 그대로 있다고 지적했고, 객체가 이미 있다는 오류가 발생했습니다.해결책은 SSMS를 완전히 종료하고 다시 시작하는 것이었고, 이때 로컬 테스트 데이터베이스에만 연결하는 것이었습니다.
데이터베이스 ->보안 ->사용자 ->사용자를 확장하여 문제를 해결한 후 사용자 매핑 및 할당으로 이동하여 사용자 'someuser'를 삭제할 수 있습니다.데이터베이스 사용자 'someuser'가 SSMS의 'Logins' 섹션에서 삭제되고 데이터베이스가 여전히 이 사용자를 소유하고 있기 때문에 이 문제가 가끔 발생합니다.
사용자를 만들지 못했습니다(Microsoft).SqlServer.Smo) SQL Server 오류 사용자, 그룹 또는 역할이 현재 데이터베이스에 이미 있습니다.(Microsoft SQL Server, 오류: 15023)
위 오류를 수정하려면 각 데이터베이스에서 사용자를 개별적으로 삭제합니다.
언급URL : https://stackoverflow.com/questions/40256032/sql-server-user-mapping-error-15023
'code' 카테고리의 다른 글
목록 인덱스가 있으면 X를 수행합니다. (0) | 2023.07.07 |
---|---|
파일을 복사하는 포스트 tsc 빌드 작업을 추가하는 방법은 무엇입니까? (0) | 2023.07.07 |
iPhone의 장치 이름을 가져오는 방법 (0) | 2023.07.07 |
jQuery로 머리글과 바닥글 사이를 스크롤할 때 사이드바를 고정시키는 방법은 무엇입니까? (0) | 2023.07.02 |
Angular - *ngIf 대 템플릿의 단순 함수 호출 (0) | 2023.07.02 |