一、若是在刪除用戶的時候出現沒法刪除用戶,此用戶擁有架構。那麼是由於當前這個用戶隸屬於某個架構,咱們在建立用戶的時候默認隸屬於dbo架構的,若是你指定了非dbo架構那麼就必須解除架構的綁定才能刪除這個用戶,隸屬於dbo架構除外。數據庫 二、咱們在軟件或者系統開發的過程當中,可能有不少的人對數據庫進行操做,不免會出現某我的對數據的誤操做,那麼怎麼避免這種狀況呢?架構 經過建立指定的用戶,而後給於用戶指定角色並對角色賦予相應的權限便可避免其餘的誤操做。ide a、建立角色網站 Create Role TestRolespa b、給予角色賦予相應的權限對象 Grant create table,create procedure,create view to TestRole--建立表 視圖 存儲過程的權限開發 Grant Select,insert,execute,alter to TestRole--查詢,添加,執行存儲過程,修改存儲過程、視圖、表it c、建立登錄table Create Login TestLogin with password='123456'class d、建立用戶 Create User TestUser for Login TestLogin --通常咱們設置登陸名和用戶名一致,這裏爲了區分,不一致 e、添加用戶到角色中 exec sp_addrolemember 'TestRole','TestUser' 至此用戶建立結束,咱們打開SSMS,在登陸名輸入TestUser,密碼爲123456便可進入到管理界面 在查詢分析器執行Update Table set ceshi='1' 會出現什麼錯誤呢? 消息 229,級別 14,狀態 5,第 1 行 由於咱們沒有給予這個用戶update的權限,只給了select 、insert 、execute 、alter 固然權限還有不少,好比賦予角色的執行評估計劃的權限 Grant showplan to TestRole 三、關於架構和用戶 我記得有個網友對架構和用戶的關係有個很好的比喻:數據庫中有表、存儲過程、視圖、觸發器等不少的對象,就像一個網站中有網頁、腳本、文件夾等對象同樣,暫稱之爲網站對象。咱們都知道網站中的對象咱們都是頗有條理的放在不一樣的文件夾下面,因此數據庫對象也不能都放在一堆。那麼相對於網站的對象數據庫對象的架構是什麼意思呢?很明顯就是文件夾了。 那是否是架構和文件夾徹底相同呢?答案是:不是。文件夾能夠屢次嵌套,架構卻不能夠。一個對象只能屬於一個架構,就像一個文件只能存放於一個文件夾。 咱們訪問一個數據庫對象應該是:"架構名。對象名" 列出數據全部的架構 select sys.objects.name,sys.schemas.name 架構-用戶:一對多的關係 架構-角色:多對多的關係 a.一個架構中不能包含相同名稱的對象,相同名稱的對象能夠在不一樣的架構中存在。
b.一個架構只能有一個全部者,全部者能夠是用戶, 數據庫角色, 應用程序角色。 c.一個用數據庫角色能夠能夠擁有一個默認架構,和多個架構。 d.多個數據庫用戶能夠共享單個默認架構。 e.因爲架構與用戶獨立,刪除用戶不會刪除架構中的對象。 |