MS SQL入門基礎 許可權管理

2022-03-02 16:53:51 字數 2803 閱讀 4185

14.4.1 許可權管理簡介

使用者在登入到sql server 之後,其安全賬號(使用者賬號)所歸屬的nt 組或角色所被授予的許可權決定了該使用者能夠對哪些資料庫物件執行哪種操作以及能夠訪問、修改哪些資料。在sql server 中包括兩種型別的許可權,即物件許可權和語句許可權。

(1) 物件許可權

物件許可權總是針對表、檢視、儲存過程而言,它決定了能對錶、檢視、儲存過程執行哪些操作(如update、 delete、 insert、 execute)。如果使用者想要對某一物件進行操作,其必須具有相應的操作的許可權。例如,當使用者要成功修改表中資料時,則前提條件是他已經被授予表的update 許可權。

不同型別的物件支援不同的針對它的操作例,如不能對錶物件執行execute 操作。我們將針對各種物件的可能操作列舉如表14-1 所示:

注意:reference充許在grant、deny、revoke語句中向有外來鍵參照表中插入一行資料。

(2) 語句許可權

語句許可權主要指使用者是否具有許可權來執行某一語句,這些語句通常是一些具有管理性的操作,如建立資料庫、表、儲存過程等。這種語句雖然仍包含有操作如(create)的物件,但這些物件在執行該語句之前並不存在於資料庫中如建立乙個表,在create table 語句未成功執行前資料庫中沒有該錶),所以將其歸為語句許可權範疇。表14-2 是所有的語句許可權清單。

各引數含義說明如下: all

表示具有所有的語句或物件許可權。對於語句許可權來說,只有sysadmin 角色才具有所有的語句許可權;對於物件許可權來說,只有sysadmin 和db_owner 角色才具有訪問某一資料庫所有物件的許可權。 statement

表示使用者具有使用該語句的許可權。這些語句包括:

create database; create default; create procedure create

rule create table; create view;backup database; backup log with grant option

表示該許可權授予者可以向其它使用者授予訪問資料物件的許可權。 ????????  

revoke和deny語法格式與grant語法格式一樣。

14.4.2 利用sql server enterprise manager 管理許可權

在sql server 中通過兩種途徑可實現對語句許可權和物件許可權的管理,從而實現對使用者許可權的設定。這兩種途徑分別為面向單一使用者和面向資料庫物件兩種許可權設定。

1 面向單一使用者的許可權設定

在sql server enterprise manager 其執行步驟為:

(1) 啟動sql server enterprise manage, 登入到指定的伺服器。

(2) 展開指定的資料庫,然後單擊users 圖示,此時在右窗格中將顯示資料庫所有使用者。

(3) 在資料庫使用者清單中選擇要進行許可權設定的使用者,右擊使用者名稱,然後在彈出 選單中選擇properties, 彈出database user properties 對話方塊,如圖14-6 所示。

(4) 在database user properties 對話方塊中單擊permission 按鈕,彈出如圖14-7 所示的database user properties 對話方塊,在該對話方塊中進行物件許可權設定。

(5) 單擊確定,完成許可權設定。 在圖14-6 的對話方塊中,如果在database role membership 選項欄中選擇任何乙個數 據庫角色(在預設條件下,任何資料庫使用者都至少是public 角色),實際上就完成了 資料庫使用者語句許可權的設定。因為對於這些資料庫固定角色,sql server 已定義了其 具有哪些語句許可權,例如db_owner 具有執行create database 的語句許可權(關於 角色將在下節作詳細介紹)。

在圖14-7 的使用者許可權設定對話方塊中,顯示了使用者當前資料庫中的所有物件,其中 包括表、檢視、儲存過程等,同時也給出針對該物件能夠進行哪些操作。通過單擊其 中的空白方格來完成許可權設定。當空白方格內為對號時,表示執行了grant 語句, 即使用者能夠對該物件執行相應的操 作;當空白方格內為錯號時,表示執 行了deny 語句,即禁止對該物件 的相應操作。

通過點選「list only objects with permissions for this user」,將列出該 使用者有權訪問的所有資料庫物件以及 詳細的訪問許可權設定資訊。

在圖14-7 的使用者許可權設定對話 框 ,可以單擊column 按鈕,在開啟 的column permissions 對話方塊中來決 定使用者對哪些列具有哪些許可權。如圖 14-8 所示。

2 面向資料庫物件的許可權設定

在sql server enterprise manager 其執行步驟為:

(1)啟動sql server enterprise manager, 登入到指定伺服器。

(2)展開指定的資料庫,從中選擇使用者物件(表、檢視、儲存過程)。

(3) 在右格對話方塊中選擇要進行許可權設定的物件,右擊該物件。

(4) 在彈出選單中選擇all tasks, 選擇manage permission, 此時彈出objectproperties 對話方塊。如圖14-9 所示。

(5) 設定許可權,單擊確定。

object properties 對話方塊與database user properties 對話方塊極為相似,在database user properties 對話方塊,我們為某一使用者設定其對當前資料庫所有物件的訪問許可權;在object properties 對話方塊中,我們為某一資料庫物件設定當前資料庫所有使用者對其的訪問許可權。

通過點選「list only user/db roles with permissions on this object」,可以列出所有對該物件具有訪問許可權的資料庫使用者或角色。

MS SQL入門基礎 管理觸發器

如果要顯示作用於表上的觸發器究竟對錶有哪些操作,必須檢視觸發器資訊。在ms sql server 中,有多種方法檢視觸發器資訊。在本節我們將介紹兩種常用的方法,即通過ms sql server 的管理工具 enterprise manager 以及系統儲存過程sp help sp helptext ...

MS SQL入門基礎 SQL 變數

transact sql中可以使用兩種變數,一種是區域性變數 local variable 另外一種是全域性變數 global variable 4.4.1 區域性變數 區域性變數是使用者可自定義的變數,它的作用範圍僅在程式內部。在程式中通常用來儲存從表中查詢到的資料,或當作程式執行過程中暫存變數使...

MS SQL入門基礎 刪除索引

8.4.1 用enterprise manager 刪除索引 在enterprise manager 中可以從如圖8 9 所示的索引管理對話方塊或如圖8 14 所示的表的屬性對話方塊中選擇要刪除的索引,再選 delete 按鈕來刪除索引。8.4.2 用drop index 命令刪除索引 drop i...