恢复备份之后所有者就没有了?

fishpowersoft 2007-12-17 08:56:57
恢复sql的备份,怎么所有者全变成dbo了?? 如何恢复能带着原来的所有者啊?

因为程序中判断了所有者估计是,所有者一变就完蛋了...
...全文
117 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hui_hui_2007 2007-12-18
  • 打赏
  • 举报
回复
应该是原来的用户成为孤立用户了。
-狙击手- 2007-12-17
  • 打赏
  • 举报
回复
IF OBJECT_ID('ChangeAll') IS NOT NULL DROP PROC ChangeAll
GO

CREATE PROCEDURE ChangeAll (
@old sysname,
@new sysname
)
AS
DECLARE @objname sysname

SET NOCOUNT ON

IF USER_ID(@old) IS NULL
BEGIN
RAISERROR ('The @old passed does not exist in the database', 16, 1)
RETURN
END
IF USER_ID(@new) IS NULL
BEGIN
RAISERROR ('The @new passed does not exist in the database', 16, 1)
RETURN
END

DECLARE owner_cursor CURSOR FOR

SELECT name FROM sysobjects WHERE uid = USER_ID(@old)
OPEN owner_cursor
FETCH NEXT FROM owner_cursor INTO @objname
WHILE (@@fetch_status <> -1)
BEGIN
SET @objname = @old + '.' + @objname
EXEC sp_changeobjectowner @objname, @new
FETCH NEXT FROM owner_cursor INTO @objname
END

CLOSE owner_cursor
DEALLOCATE owner_cursor
GO

EXEC ChangeAll @old = 'mis', @new = 'dbo'

转一个批量改表的所有者的过程

-狙击手- 2007-12-17
  • 打赏
  • 举报
回复
原来的用户成了孤立用户

可使用存储过程sp_change_users_login。它有三种动作,分别是report,update_one和auto_fix。

运行sp_change_users_login 'report',系统会列出当前数据库的孤立用户数。

我们只需要选择当前数据库为testdb,然后运行

sp_change_users_login 'update_one','test','test'

系统就会提示修复了一个孤立用户。

  如果没有建立test的登录用户,还可以用sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword'来创建一个登录用户名为test,密码为testpassword的用户与之对应。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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