Reason:
The difference between "logon" and "User" in SQL Server, "logon" for user authentication, and database "user" account for database access and permission validation. The login is associated with the user through a security identifier (SID). When you restore a database to a different server, the database contains a set of users and permissions, but there may not be a corresponding login or the user associated with the login may not be the same user. This situation is known as "orphaned users". The logon issue cannot be resolved either by creating a new login or by granting the user permission to the corresponding database for a login with the same name, because SQL Server reported "error 15023: User or role already exists in the current database", and in order to resolve this issue, the system stored procedure needs to be called Sp_change_ Users_login, as follows: Use icpdb
Go sp_change_users_login ' update_one ', ' icpdb_user ', ' Icpdb_user '
where Newzs for the existence of orphaned users of the database, Update_One is the parameters of the stored procedure, indicating that only one user is processed, the previous icpdb_user is "user", the latter icpdb_user is "login", the above SQL represents the server login "Icpdb_ User "Icpdb_user" with Newzs database Users "reconnect". This will allow the database to be used normally.
MSSQL user or role already exists in the current database, SQLServer2008, error 15023,