我有一个数据库tom,后来还原远程下载的数据库的备份文件tom2.bak,还原到tom2。
我有一个用户hongda,他映射 表tom的几个权限。因为对tom2无任何权限,所以现在给他加同样的权限到tom2数据库上,但出现如下报错:
标题: Microsoft SQL Server Management Studio
------------------------------创建 对于 用户“hongda”失败。 (Microsoft.SqlServer.Smo)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.4000.0+((KJ_PCU_Main).120628-0827+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=创建+User&LinkId=20476------------------------------
其他信息:执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)------------------------------用户、组或角色 'hongda' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1600&EvtSrc=MSSQLServer&EvtID=15023&LinkId=20476------------------------------
按钮:确定
------------------------------
创建失败角色已存在
我有一个用户hongda,他映射 表tom的几个权限。因为对tom2无任何权限,所以现在给他加同样的权限到tom2数据库上,但出现如下报错:
标题: Microsoft SQL Server Management Studio
------------------------------创建 对于 用户“hongda”失败。 (Microsoft.SqlServer.Smo)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.4000.0+((KJ_PCU_Main).120628-0827+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=创建+User&LinkId=20476------------------------------
其他信息:执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)------------------------------用户、组或角色 'hongda' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1600&EvtSrc=MSSQLServer&EvtID=15023&LinkId=20476------------------------------
按钮:确定
------------------------------
创建失败角色已存在
解决方案 »
- 同样的语句,在SQL server 2008中可以,在2000中不行
- sql 2005 ldf和mdf文件 怎么还原到数据库里面
- 有关求某类的所有上层分类名称,好像递归
- 没分了 发扬下白求恩精神吧
- 如何实现下面的结果,把表a中level=1的fore字段值改为表a中,level=2的值的累加
- SQL2000的一个数据库怎么还原到SQL2005上?急哦 。。
- use TEST go update testvarbinary set name .write(convert(varbinary(max),N'this
- sql2005中有多少表怎么算
- 按装问题
- 小弟好急在线等
- 一表两外键引用同一主键表,T-SQL请大神简化
- '@tbname' 附近有语法错误。
--#2.但备份还原后,这些帐户已经成为了孤立帐户。修复方法如下:
用sp_change_users_login消除Sql Server的孤立用户 孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。
孤立帐户的产生一般是一下两种: 1.将备份的数据库在其它机器上还原; 2.重装系统或SQL SERVER之后只还原了用户库
解决方法是使用sp_change_users_login来修复。
sp_change_users_login的用法有三种
用法1: exec sp_change_users_login 'REPORT'
列出当前数据库的孤立用户
用法2: exec sp_change_users_login 'AUTO_FIX','用户名'
可以自动将用户名所对应的同名登录添加到syslogins中
用法3: exec sp_change_users_login 'UPDATE_ONE','用户名','登录名' 将用户名映射为指定的登录名
后来加上去了,不过修改的是“数据库/属性/权限”,然后在重新修改hongda的用户映射。
这里一般是怎么选择角色(数据库角色成员身份):
我发现这样也会弹出(不是来自备份文件创建的数据库):
用户hongda原先映射了 数据库tom,后来修改映射 数据库 tom2。但是每次我修改他们的属性:安全性 → 登录名 → hongda → 属性 → 用户映射,只要修改 用户“数据库角色成员身份”救会报错这个。非得先去数据库中先右键【数据库】属性不给用户任何权限,然后再去安全性那里修改用户的属性。似乎只有这样才可以修改了。没有别的方法吗?
我发现这样也会弹出(不是来自备份文件创建的数据库):
用户hongda原先映射了 数据库tom,后来修改映射 数据库 tom2。但是每次我修改他们的属性:安全性 → 登录名 → hongda → 属性 → 用户映射,只要修改 用户“数据库角色成员身份”救会报错这个。非得先去数据库中先右键【数据库】属性不给用户任何权限,然后再去安全性那里修改用户的属性。似乎只有这样才可以修改了。没有别的方法吗?
不好意思,#6楼我的回复 描述错误了。现在问题是修改不了hongda的对tom、tom2的权限了。两个都报这个错了
#1.SQL SERVER有一个登陆名叫hongda,登陆名跟任何数据库都没有关系。
#2.在数据库tom中,也有一个帐户名叫hongda,它只属于tom这个数据库。
#3.在数据库tom2中,也有一个帐户名叫hongda,它只属于tom2这个数据库。(当然我们先不管这个hongda是不是孤立帐户)
#4.本来上而#1,#2,#3中的3个hongda是没有任何关系的。但为了达到下面这个目的:一个user用hongda登陆SQL SERVER,并能控制它对tom和tom2数据库的操作权限。就会这样:把#2中的hongda和#1中的hongda映射一下,把#3中的hongda和#1中的hongda映射一下。这样,用#1中的hongda登陆后,由于映射了两个数据库中的hongda,就具有了#2,#3数据库中hongda的所有操作权限。
#5.上面说了下原理。下面来说下你的现象:每次我修改他们的属性:安全性 → 登录名 → hongda → 属性 → 用户映射,只要修改 用户“数据库角色成员身份”救会报错这个。这时你的操作是:把#1中的hongda映射到tom和tom2中的hongda,由于这儿操作是:给tom及tom2创建一个名字为hongda的数据库级别的用户名,然后赋予,下面选中的权限:由于tom库已经正常映射过了,就不动它;tom2在创建时,发现hongda这个帐户已经存在,那就打算把它删除重建,但如果这时,tom2.hongda这个帐户还具有权限,就无法删除。所以,提示你,帐户已存在。而你把它的权限都去掉后,就可以被删除重建了。