Sql-Server
SQL Server:dbo vs db_owner 角色成員?
我正在分配使用者到一個新數據庫。與將登錄指定為 db_owner 角色成員相比,使用者作為預設 dbo 使用者有什麼區別?
每個數據庫都應該有一個 dbo 使用者,預設情況下分配給 db_owner 數據庫角色。還有一個 dbo 模式,它部分是 SQL Server 2000 和更早版本的保留,其中使用者和模式是相同的。如果在使用者的預設模式中找不到對象,則查詢將在 dbo 模式中查找對象(假設對象名稱未使用模式名稱限定),這也有點特殊。
您只能將單個登錄映射到數據庫中的 dbo 使用者(與任何數據庫使用者一樣),但您可以將任意數量的使用者分配給 db_owner 角色,從而使他們基本上可以完全控制數據庫。
如果您為數據庫使用者設置預設架構,則不會對安全性產生任何影響。當對象名稱未提供特定架構名稱時,它僅控制預設情況下將使用哪個架構來創建和引用對象。在 SQL Server 2000 和更早的版本中,由於沒有分離使用者和架構,使用者的預設架構始終是其自身,除非另有明確指定,例如 “CREATE TABLE dbo.test_table…” 與 “CREATE TABLE test_table…” . (請注意,dbo 模式仍然用於在使用者的預設模式中找不到的對象。)