西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程數(shù)據(jù)庫(kù)教程 → 修改 SQLSERVER 中對(duì)象的所屬架構(gòu) 為 dbo 的方法

修改 SQLSERVER 中對(duì)象的所屬架構(gòu) 為 dbo 的方法

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:百度搜索時(shí)間:2011/6/27 9:29:51字體大小:A-A+

作者:西西點(diǎn)擊:1103次評(píng)論:1次標(biāo)簽: SQLSERVER

  • 類(lèi)型:數(shù)據(jù)庫(kù)類(lèi)大。594KB語(yǔ)言:中文 評(píng)分:7.7
  • 標(biāo)簽:
立即下載

 SQL2005使用起來(lái)真是比SQL2000難于上手,登陸名,用戶(hù),架構(gòu),角色,權(quán)限,反反復(fù)復(fù)的,沒(méi)弄清這個(gè)關(guān)系.       以前在服務(wù)器上的數(shù)據(jù)庫(kù)使用遠(yuǎn)程連接SQL2000創(chuàng)建的存儲(chǔ)過(guò)程,現(xiàn)在下載到本地,所有當(dāng)時(shí)的存儲(chǔ)過(guò)程所有者都不是dbo,而安全用戶(hù)里有dbo,默認(rèn)架構(gòu)也是dbo,登陸名是sa,dbo具有dbowner的權(quán)限,原以為這樣以sa創(chuàng)建adodb連接對(duì)象的話,是可以操作數(shù)據(jù)庫(kù)的所有對(duì)象的,沒(méi)想到在執(zhí)行到以前的存儲(chǔ)過(guò)程時(shí)提示:


      Microsoft OLE DB Provider for ODBC Drivers 錯(cuò)誤 '80040e14'       [Microsoft][ODBC SQL Server Driver][SQL Server]找不到存儲(chǔ)過(guò)程 'Proc_WebCount'。      
      一下子胡涂了一陣,默認(rèn)sa就是dbowner權(quán)限的,怎么會(huì)沒(méi)有執(zhí)行權(quán)限呢,反復(fù)設(shè)置dbo權(quán)限,架構(gòu),還有原來(lái)的所有者架構(gòu),權(quán)限帳號(hào),怎么也不能把現(xiàn)在的所有者與dbo聯(lián)系起來(lái).       最后查了點(diǎn)資料,終于找到修改數(shù)據(jù)庫(kù)中各個(gè)對(duì)象所有者的方法,修改了一下,直接執(zhí)行就可以用,挺方便..      
      以SA登陸,USE要選擇的數(shù)據(jù)庫(kù),再執(zhí)行下面的SQL語(yǔ)句:
      --創(chuàng)建游標(biāo),查詢(xún)所有者為NiunvDB的記錄
      declare csr1 cursor
      for
      select 'Name' = name
      from sysobjects
      where user_name(uid)='NiunvDB'
      order by name
      open csr1       --循環(huán)讀取游標(biāo)記錄,執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程SP_ChangeObjectOwner修改對(duì)象所有者
      FETCH NEXT FROM csr1 INTO @name
      while (@@FETCH_STATUS=0)
      BEGIN
      SET @name='NiunvDB.'+@name
      EXEC SP_ChangeObjectOwner @name, 'dbo'
      fetch next from csr1 into @name
      END
      CLOSE csr1
      DEALLOCATE csr1       執(zhí)行以后可以看到
      告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      警告: 更改對(duì)象名的任一部分都可能會(huì)破壞腳本和存儲(chǔ)過(guò)程。
      ......       就是符合查詢(xún)條件的全部對(duì)象的所有者被改了希望的所有者名稱(chēng)了.然后刷新數(shù)據(jù)庫(kù)對(duì)象,可以看到,原來(lái)的NiunvDB.開(kāi)頭的存儲(chǔ)過(guò)程全部變成了dbo.存儲(chǔ)過(guò)程名了.....        sysobjects表里存儲(chǔ)了對(duì)應(yīng)數(shù)據(jù)庫(kù)的對(duì)象數(shù)據(jù),包括表,默認(rèn)值,主鍵,存儲(chǔ)過(guò)程,其中的type字段就表示對(duì)象類(lèi)型,大概意思如下:
      P:存儲(chǔ)過(guò)程
      U:用戶(hù)表
      K:主鍵
      D:默認(rèn)值
      還有幾個(gè)類(lèi)型,想不出來(lái)是什么意思,不過(guò)這幾個(gè)應(yīng)該夠用了,要查表的信息,還可以使用
      select * from INFORMATION_SCHEMA.TABLES
      查詢(xún)出所有對(duì)應(yīng)數(shù)據(jù)庫(kù)中的表數(shù)據(jù),
      INFORMATION_SCHEMA.columns可查全部表的列數(shù)據(jù)
      INFORMATION_SCHEMA.VIEWS可查全部視圖數(shù)據(jù)      
      sp_changedbowner 'sa'
      可直接更改當(dāng)前數(shù)據(jù)庫(kù)的所有者

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(1)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)