首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

创造 对于 用户“hongda”失败。 (Microsoft.SqlServer.Smo)

2013-09-05 
创建 对于 用户“hongda”失败。(Microsoft.SqlServer.Smo)我有一个数据库tom,后来还原远程下载的数据库的备

创建 对于 用户“hongda”失败。 (Microsoft.SqlServer.Smo)
我有一个数据库tom,后来还原远程下载的数据库的备份文件tom2.bak,还原到tom2。
我有一个用户hongda,他映射 表tom的几个权限。因为对tom2无任何权限,所以现在给他加同样的权限到tom2数据库上,但出现如下报错:


创建失败 角色已存在
[解决办法]
一般的一般,选db_owner,除非有什么特殊要求。
[解决办法]
果断db_owner,数据库的所有权限。呵呵
[解决办法]
我来试着解释一下,这个现象:
#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这个帐户还具有权限,就无法删除。所以,提示你,帐户已存在。而你把它的权限都去掉后,就可以被删除重建了。

------解决方案--------------------


引用:
不好意思,#6楼我的回复 描述错误了。现在问题是修改不了hongda的对tom、tom2的权限了。两个都报这个错了

不对呀,创建了映射后。可以随便改数据库级别hongda帐户的权限。不管是从映射界面改,还是在数据库中单击右键-》属性-》权限中改,还是在数据库-》安全-》hongda-》右键属性中改。

热点排行