必胜高考网_全国高考备考和志愿填报信息平台

必勝高考網 > 計算機類 > 計算機等級 > 資訊 >

數據庫:SQL還原數據庫后孤立用戶問題處理

時間: 家輝2 資訊

  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','用戶名','登錄名'

  將用戶名映射為指定的登錄名。

  SQL孤立用戶解決方案

  當您將數據庫備份恢復到另一臺服務器時,可能會遇到孤立用戶的問題。SQL Server 聯機叢書中的孤立用戶疑難解答主題中沒有講述解決此問題的具體步驟。

  雖然術語“登錄”和“用戶”經常交換使用,但它們之間有很大的不同。登錄用于用戶身份驗證,而數據庫用戶帳戶用于數據庫訪問和權限驗證。登錄通過安全識別符 (SID) 與用戶關聯。訪問 SQL Server 服務器需要登錄。驗證特定登錄是否有效的過程稱為“身份驗證”。登錄必須與 SQL Server 數據庫用戶相關聯。您使用用戶帳戶控制數據庫中執行的活動。如果數據庫中不存在針對特定登錄的用戶帳戶,使用該登錄的用戶即使能夠連接到 SQL Server 服務器,也無法訪問數據庫。但是,該情形的唯一例外是當數據庫包含“guest”用戶帳戶時。與用戶帳戶不關聯的登錄將被映射到 guest 用戶。相反,如果存在數據庫用戶,但沒有與其關聯的登錄,則該用戶將無法登錄到 SQL Server 服務器中。

  將數據庫恢復到其他服務器時,數據庫中包含一組用戶和權限,但可能沒有相應的登錄或者登錄所關聯的用戶可能不是相同的用戶。這種情況被稱為存在“孤立用戶”。

  孤立用戶疑難解答

  當您將數據庫備份恢復到另一臺服務器時,可能會遇到孤立用戶的問題。以下情形說明了該問題并闡述如何加以解決。

  1. 向主數據庫添加一個登錄,并將默認數據庫指定為 Northwind: Use master go sp_addlogin 'test', 'password', 'Northwind'

  2. 向剛創建的用戶授予訪問權限: Use Northwind go sp_grantdbaccess 'test'

  3. 備份數據庫。 BACKUP DATABASE Northwind

  TO DISK = 'C:MSSQLBACKUPNorthwind.bak'

  4. 將數據庫恢復到其他 SQL Server 服務器: RESTORE DATABASE Northwind

  FROM DISK = 'C:MSSQLBACKUPNorthwind.bak'

  恢復的數據庫包含名為“test”的用戶,但沒有相應的登錄,這就導致“test”成為孤立用戶。

  5. 現在,為了檢測孤立用戶,請運行此代碼: Use Northwind go sp_change_users_login 'report'

  輸出中列出了所有登錄,其中包含 Northwind 數據庫的 sysusers 系統表和主數據庫的 sysxlogins 系統表中不匹配的條目。

  解決孤立用戶問題的步驟

  1. 為前一步中的孤立用戶運行以下命令:

  Use Northwind

  go

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

  這樣,就將服務器登錄“test”與 Northwind 數據庫用戶“test”重新連接起來。

  sp_change_users_login 存儲過程還可以使用“auto_fix”參數對所有孤立用戶執行更新,但不推薦這樣做,因為 SQL Server 會嘗試按名稱匹配登錄和用戶。大多數情況下這都是可行的;但是,如果用戶與錯誤登錄關聯,該用戶可能擁有錯誤的權限。

  2. 在上一步中運行代碼后,用戶就可以訪問數據庫了。然后用戶可以使用 sp_password 存儲過程更改密碼: Use master

  go

  sp_password NULL, 'ok', 'test'

  此存儲過程不能用于 Microsoft Windows NT 安全帳戶。通過 Windows NT 網絡帳戶連接到 SQL Server 服務器的用戶是由 Windows NT 授權的;因此,這些用戶只能在 Windows NT 中更改密碼。

  只有 sysadmin 角色的成員可以更改其他用戶的登錄密碼。

  SQL2005刪除用戶的時候,產生“數據庫主體在該數據庫中擁有架構,無法刪除”的解決辦法

  --執行如下SQL語句

  ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;

  --然后手動刪除就可以了。

  [導入]sql2000備份的數據庫還原到sql2005后,選擇“數據庫關系圖”提示:此數據庫沒有有效所有者,因此無法安裝數據庫關系圖支持對象"的解決方法

  sql2000備份的數據庫還原到sql2005后,選擇“數據庫關系圖”提示:此數據庫沒有有效所有者,因此無法安裝數據庫關系圖支持對象。若要繼續,請首先使用“數據庫屬性”對話框的“文件”頁或 ALTER AUTHORIZATION 語句將數據庫所有者設置為有效登錄名,然后再添加數據庫關系圖支持對象。

  解決方法如下:

  1、設置兼容級別為90(2005為90)

  USE [master]

  GO

  EXEC dbo.sp_dbcmptlevel @dbname='數據庫名', @new_cmptlevel=90

  GO

  或是選責你還原的數據庫,點右鍵,選屬性->選項->兼容級別,選擇sqlserver2005(90) 然后確定,

  這時,你在該數據庫下展開“數據庫關系圖”節點時會有個提示,"此數據庫缺少一個或多個使用數據庫關系圖所需的支持對象,是否創建",選擇“是”即可。

  2、通過以上的方法操作,如果問題依然存在的話,按下列方法繼續

  選擇你的數據庫,然后選擇"安全性"->"用戶",選擇dbo,打開屬性頁,如登錄名為空的話,新建查詢,然后

  use [你的數據庫名]

  EXEC sp_changedbowner 'sa'

  執行成功后,你再選擇"數據庫關系圖"節點,時提示 “此數據庫缺少一個或多個使用數據庫關系圖所需的支持對象,是否創建",選擇“是”即可。 就可以看到原先建的關系圖了。

  從服務器上作導入導出至本地機上,數據庫中的表都在,可是表名前段的架構身份不是“dbo”了,而是服務器上數據庫的“庫名”。這樣架構身份不同了,程序運行就出問題了。試過單個修改表,在sql2005的屬性窗口可以更改架構者,可是N多表哪兒能手動改得過來呀!還請高手指點批量更改的方法。在此謝過。

  SQL Server2005可以使用系統存儲過程sp_changeobjectowner更改數據庫對象的所有者。

  sp_changeobjectowner '對象名(包括架構名)','新架構名'

  批量修改請用:

  方法一:使用游標

  declare @name sysname

  declare csr1 cursor

  for

  select TABLE_NAME from INFORMATION_SCHEMA.TABLES

  open csr1

  FETCH NEXT FROM csr1 INTO @name

  while (@@FETCH_STATUS=0)

  BEGIN

  SET @name='原架構名.'+@name

  EXEC SP_ChangeObjectOwner @name, '新架構名'

  fetch next from csr1 into @name

  END

  CLOSE csr1

  DEALLOCATE csr1

  方法二:使用系統存儲過程sp_MSforeachtable

  EXEC sp_MSforeachtable @command1="EXEC SP_ChangeObjectOwner '?','新架構名'"

  在sql server 2005數據庫中更改數據架構

  在數據庫testDB中存在架構A及用戶A,現將testDB數據庫所屬的用戶由A改為B,同時刪除用戶A;架構也由A改為B,刪除架構A,操作如下:

  1、創建用戶B,再創建架構B;

  2、將架構A的權限賦給用戶B,取消用戶A擁有架構A的權限,刪除用戶A;

  3、將數據庫的所有屬于架構A的對象改為架構B,代碼如下:

  ALTER SCHEMA [新架構名] TRANSFER 舊架構名.[數據庫中的對象表或視圖或存儲過程]

  ALTER SCHEMA [B] TRANSFER A.[對象1]

  ALTER SCHEMA [B] TRANSFER A.[對象2]

  ALTER SCHEMA [B] TRANSFER A.[對象n]

56083 主站蜘蛛池模板: 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 非甲烷总烃分析仪|环控百科 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 山东信蓝建设有限公司官网| 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 深圳成考网-深圳成人高考报名网 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 上海质量认证办理中心| 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 北京京云律师事务所| 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 福建省教师资格证-福建教师资格证考试网 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 |