資料庫主體擁有資料庫角色,無法刪除

2022-05-09 06:42:10 字數 1862 閱讀 8603

附加資料庫後用語句:

use[northwind]

drop

user

betterdev

;刪除使用者

betterdev 時報「

資料庫主體擁有資料庫角色,無法刪除。

」錯誤,無法刪除使用者。

解決方法:

通過語句

select

[name]

,[principal_id]

,[type]

,[owning_principal_id]

from

sys.

database_principals

;檢視資料庫的所有使用者

(圖中條乙個選中項應為betterdev 而非 better)

從圖上可以看出角色

「aspnet_webevent_fullaccess」

的所有者是7 即

「betterdev」

,所以無法刪除「

betterdev

」。故用如下語句:

alter

authorization

onrole

::aspnet_webevent_fullaccess

todbo

;更改角色的所有者,如果有多個角色的所有者都為「

betterdev

」則用如下語句:

declare

@name

varchar

(110);

declare

@sql

varchar

(500);

declare

mycursor

cursor

forselect

[name]

from

sys.

database_principals

where

owning_principal_id

=7;open

mycursor

;fetch

next

from

mycursor

into

@name

;while

@@fetch_status

= 0begin

set@sql

='alter authorization on role::'

+@name

+' to dbo;'

exec

(@sql

);fetch

next

from

mycursor

into

@name

;end

;close

mycursor

;deallocate

mycursor

;進行迴圈刪除。

最後用:

use[comptprice]

drop

user

user1

;即可順利刪除使用者.同理

刪除使用者

betterdev 時報「

資料庫主體擁有資料庫框架,無法刪除。

」錯誤,無法刪除使用者。

則先用select

*from

sys.schemas

查詢要刪除有使用者擁有哪個框架

再用alter

authorization

onschema

::db_owner 

todbo

即可解決問題

資料庫主體在該資料庫中擁有 架構,無法刪除解決方法

每乙個資料庫使用者對應於乙個系統登陸帳號,並且每乙個架構只能賦予乙個使用者。所以直接刪除使用者的架構是不可以的,然後我就新建乙個登入名,並且在使用者對映裡面將db owner架構 如果原使用者還有其他架構,則也把其他架構賦給他 賦給他,然後就可以刪除之前的使用者了 先刪除此使用者對應的架構,然後在刪...

資料庫主體在該資料庫中擁有架構,無法刪除解決方法

伺服器資料庫上建立了乙個專屬的管理員,因為測試想將其刪除,但是總是提示該使用者擁有架構不能刪除,而且架構顯示db owner也不可更改,我用的是sqlserver2008。在sql server2000中刪除資料庫使用者很簡單,只要直接刪除或者使用drop user命令就可以了,但是sql serv...

資料庫角色許可權

use database goexec sp addlogin name 新增登入 exec sp grantdbaccess n name exec sp addrolemember n db owner n name 新增db owner許可權 go 刪除測試使用者 exec sp revoke...