如何解决SQL Server数据库的"User, group, or role already exists
问题场景 在SQL Server数据库迁移时,在另外一台服务器上恢复数据库备份文件之后,需要重新创建之前数据库上的用户帐户。在创建登录用户时,需要在User Mapping中给该用户针对具体的数据库进行授权,由于恢复出来的数据库中存在同名的用户帐户,创建时会出现"User, group, or role already exists in the current database"的错误提示。详细错误信息如下: TITLE: Microsoft SQL Server Management Studio ------------------------------ Create failed for User 'testuser'. (Microsoft.SqlServer.Smo) ------------------------------ ADDITIONAL INFORMATION: An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ User, group, or role 'testuser' already exists in the current database. (Microsoft SQL Server, Error: 15023) 之前的解决方法 在创建用户帐户(或者授权)之前,先在对应的数据库中删除该同名的用户帐户。 最新的解决方法 先创建用户帐户,不进行授权,然后通过下面的SQL语句将该用户帐户关联至对应的数据库用户。优点是避免了重新授权的操作。 USE {目标数据库} EXEC sp_change_users_login 'Update_One', '{目标数据库已存在的用户名}', '{创建的登录用户名}' 方法来源 SQL Server Forums - How to assign a login to an existing user? 查看本栏目更多精彩内容:http://www.bianceng.cn/database/SQLServer/ (编辑:广州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – SQL Server:XPATH查询失败
- sql-server – 为什么在SQL Server 2012中设置空
- sql-server – SQL Server 2005/2008的哪些备份恢
- SQL Server实现纵表转横表的方法是什么?
- 网络随身行,手机做网管
- Windows 2008 R2 Server Core .NET环境配置
- sql-server – 使用带有nHibernate的CreateSQLQu
- sql-server – 什么时候动态端口“动态”?
- sql-server-2008 – SQL 2008每10分钟执行一次CH
- 八亿时空服务器获国际专利与名牌博览会金奖