某用户下所有表还原的问题

solidpanther 2005-07-04 11:34:38
问题一:
我在一个数据库里用user1建立了一些表,这些表的所有者是user1,还有些存储过程、函数什么的,
然后备份该数据库,
然后将这个备份文件拷到别的机器上,
新建立一个库,然后还原这个备份,
由于我必须用类似select * from user1.tbl1的语法才能访问这个用户的表,
所以我在在登陆里建立user1这个用户,给他dbowner权限的时候就不能创建,因为该用户已经在还原的库中存在,
然后我到那个库中想把用户删除,但是由于有对象关联着该用户,所以是删除不掉的,
于是我只能先利用某些方法把这些表的所有者先给某个别的用户,然后删除该用户,然后重新给他dbowner的权限,然后重新建立,
难道只能这么做么?没别的办法了么?
多用户管理库难道这么麻烦么?

问题二:
我在数据里有些procedure、function、view里访问某些表没加上表的所有者,
现在我想批量的把这些对象都加上所有者,编写了一些东西,但是
类似
execute ('select tbl1_1.fld1 from tbl1 tbl1_1')
这样的语句还是被我用某些方法替换成了
execute ('select user1.tbl1_1.fld1 from user1.tbl1 user1.tbl1_1')
(我是根据sysobjects批量弄的),由于tbl1_1是别名,但其中的前4个字段是系统的对象(表),所以被我替换成了user1.tbl1_1,这就错了,
哎,有啥好办法呢?

分不够再加,百分感谢!



...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天地客人 2005-07-05
  • 打赏
  • 举报
回复
帮你UP
solidpanther 2005-07-05
  • 打赏
  • 举报
回复
问题二就是本来应该写成
select * from user1.tbl1
的,但是好多语句都写成类似
select * from tbl1了,
现在想批量替换这些存储过程函数视图等
qzxyd 2005-07-05
  • 打赏
  • 举报
回复
帮你UP
duanduan1122 2005-07-05
  • 打赏
  • 举报
回复
问题二:
看不懂,再说一下。
duanduan1122 2005-07-05
  • 打赏
  • 举报
回复
问题一:
1.sp_change_users_login
更改当前数据库中 SQL Server 用户与 Microsoft® SQL Server™ 登录之间的关系。

语法
sp_change_users_login [ @Action = ] 'action'
[ , [ @UserNamePattern = ] 'user' ]
[ , [ @loginName = ] 'login' ]
2.


注释
使用此过程将当前数据库中用户的安全帐户链接到不同的登录。如果用户登录已更改,则使用 sp_change_users_login 将用户链接到新的登录,而不会丢失用户的权限。

login 不能为 sa,而 user 不能为 dbo、guest 或 INFORMATION_SCHEMA 用户。

不能在用户定义的事务中执行 sp_change_users_login。
3.
A. 显示登录映射的当前用户的报告
下面的示例生成当前数据库中的用户及其安全标识符的报告。

EXEC sp_change_users_login 'Report'

B. 更改用户的登录
下面的示例更改 pubs 数据库中的用户 Mary 与现有登录之间的链接,链接到新的登录 NewMary 上(使用 sp_addlogin 添加)。

--Add the new login.
USE master
go
EXEC sp_addlogin 'NewMary'
go

--Change the user account to link with the 'NewMary' login.
USE pubs
go
EXEC sp_change_users_login 'Update_One', 'Mary', 'NewMary'

映射一下就可以了,应该比你那种做好简单。
Navywang917 2005-07-05
  • 打赏
  • 举报
回复
mark

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧