數據控制語言

數據控制語言(DCL:Data Control Language)是用來設定或者更改資料庫用戶或角色許可權的語句,這些語句包括GRANT、DENY、REVOKE等語句,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成員才有權利執行數據控制語言。

基本介紹

  • 中文名:數據控制語言
  • 外文名:Data Control Language
  • 類型:授權語句
  • 授予:語句許可權或者對象許可權
  • DENY語句:角色授予許可權
語法語句,GRANT語句,DENY語句,REVOKE語句,系統存儲過程,其它語言元素,注釋,變數,局部變數,全局變數,運算符,

語法語句

GRANT語句

GRANT語句是授權語句,它可以把語句許可權或者對象許可權授予給其他用戶和角色。
授予語句許可權的語法形式為:
GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]
授予對象許可權的語法形式為:
GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ]ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON {stored_procedure | extended_procedure }| ON { user_defined_function } }TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role} ]

DENY語句

DENY語句用於拒絕給當前資料庫內的用戶或者角色授予許可權,並防止用戶或角色通過其組或角色成員繼承許可權。否定語句許可權的語法形式為:
DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
否定對象許可權的語法形式為:
DENY{ ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] )] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] |ON { stored_procedure | extended_procedure } | ON {user_defined_function } } TO security_account [ ,...n ] [ CASCADE ]

REVOKE語句

REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前資料庫內的用戶或者角色上授予或拒絕的許可權刪除,但是該語句並不影響用戶或者角色從其他角色中作為成員繼承過來的許可權。
收回語句許可權的語法形式為:
REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ]
收回對象許可權的語法形式為:
REVOKE[ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ (column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } |ON { user_defined_function } } { TO | FROM } security_account [ ,...n ][ CASCADE ] [ AS { group | role } ]

系統存儲過程

系統存儲過程是SQLServer系統創建的存儲過程,它的目的在於能夠方便地從系統表中查詢信息,或者完成與更新資料庫表相關的管理任務或其它的系統管理任務。系統存儲過程可以在任意一個資料庫中執行。系統存儲過程創建並存放於系統資料庫master中,並且名稱以sp_或者xp_開頭。
系統存儲過程的部分示例如下:
sp_addtype:用於定義一個用戶定義數據類型。
sp_configure:用於管理伺服器配置選項設定。
xp_sendmail:用於傳送電子郵件或尋呼信息。
sp_stored_procedures:用於返回當前資料庫中的存儲過程的清單。
sp_help:用於顯示參數清單和其數據類型。
sp_depends:用於顯示存儲過程依據的對象或者依據存儲過程的對象。
sp_helptext:用於顯示存儲過程的定義文本。
sp_rename:用於修改當前資料庫中用戶對象的名稱。

其它語言元素

注釋

注釋是程式代碼中不執行的文本字元串(也稱為註解)。在SQL Server中,可以使用兩種類型的注釋字元:一種是ANSI標準的注釋符“--”,它用於單行注釋;另一種是與C語言相同的程式注釋符號,即“/* */”。

變數

變數是一種語言中必不可少的組成部分。Transact-SQL語言中有兩種形式的變數,一種是用戶自己定義的局部變數,另外一種是系統提供的全局變數

局部變數

局部變數是一個能夠擁有特定數據類型的對象,它的作用範圍僅限制在程式內部。局部變數可以作為計數器來計算循環執行的次數,或是控制循環執行的次數。另外,利用局部變數還可以保存數據值,以供控制流語句測試以及保存由存儲過程返回的數據值等。局部變數被引用時要在其名稱前加上標誌“@”,而且必須先用DECLARE命令定義後才可以使用。

全局變數

全局變數是SQLServer系統內部使用的變數,其作用範圍並不僅僅局限於某一程式,而是任何程式均可以隨時調用。全局變數通常存儲一些SQLServer的配置設定值和統計數據。用戶可以在程式中用全局變數來測試系統的設定值或者是Transact-SQL命令執行後的狀態值。
使用全局變數時應該注意以下幾點:
①全局變數不是由用戶的程式定義的,它們是在伺服器級定義的。
②用戶只能使用預先定義的全局變數。
③引用全局變數時,必須以標記符“@@”開頭。
局部變數的名稱不能與全局變數的名稱相同,否則會在應用程式中出現不可預測的結果。

運算符

運算符是一些符號,它們能夠用來執行算術運算、字元串連線、賦值以及在欄位、常量和變數之間進行比較。在SQL Server 2000中,運算符主要有以下六大類:算術運算符、賦值運算符、位運算符、比較運算符、邏輯運算符以及字元串串聯運算符
算術運算符
算術運算符可以在兩個表達式上執行數學運算,這兩個表達式可以是數字數據類型分類的任何數據類型。算術運算符包括加(+)、減(—)、乘(*)、除(/)和取模(%)。
賦值運算符
Transact-SQL 中只有一個賦值運算符,即等號(=)。賦值運算符使我們能夠將數據值指派給特定的對象。另外,還可以使用賦值運算符在列標題和為列定義值的表達式之間建立關係。
位運算符
位運算符使我們能夠在整型數據或者二進制數據(image 數據類型除外)之間執行位操作。此外,在位運算符左右兩側的運算元不能同時是二進制數據。
比較運算符
比較運算符用於比較兩個表達式的大小或是否相同,其比較的結果是布爾值,即TRUE(表示表達式的結果為真)、FALSE(表示表達式的結果為假)以及UNKNOWN。除了 text、ntext 或 image 數據類型的表達式外,比較運算符可以用於所有的表達式。
邏輯運算符可以把多個邏輯表達式連線起來。邏輯運算符包括AND、OR和NOT等運算符。邏輯運算符和比較運算符一樣,返回帶有 TRUE 或 FALSE 值的布爾數據類型。
字元串串聯運算符
字元串串聯運算符允許通過加號 (+) 進行字元串串聯,這個加號即被稱為字元串串聯運算符。例如對於語句SELECT ‘abc’+’def’,其結果為abcdef。
運算符的優先等級從高

相關詞條

熱門詞條

聯絡我們