首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 權限管理:GRANT 陳述式完整參考

     編輯:關於SqlServer

GRANT 陳述式 - 授予權限

在安全性系統中建立項目,使目前資料庫中的使用者得以處理資料或執行特定 Transact-SQL 陳述式。

語法

陳述式權限

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 } ]

參數說明

  • ALL:授予所有適用權限(權限範圍同 DENY)
  • statement:CREATE DATABASE、CREATE TABLE、BACKUP LOG 等
  • permission:SELECT、INSERT、UPDATE、DELETE、EXECUTE、REFERENCES 等
  • column:指定資料行層級權限
  • WITH GRANT OPTION:允許受授者將權限再授予他人(僅物件權限)
  • AS {group|role}:指定授權者為群組或角色(用於授權鏈結)

重要規則

  • 不允許跨資料庫權限,僅能授予目前資料庫物件/陳述式權限
  • 系統預存程序 EXECUTE 權限預設授予 public 角色,但執行時仍檢查角色成員資格
  • 權限衝突時 DENY 優先於 GRANT
  • 應用程式角色啟用時,GRANT 對該角色存取的物件無效

固定伺服器/資料庫角色權限對照表

文件包含詳細的固定伺服器角色(sysadmin、serveradmin、dbcreator 等)與固定資料庫角色(db_owner、db_datareader、db_ddladmin 等)可執行的 Transact-SQL 陳述式對照表。

範例

-- A. 授予陳述式權限
GRANT CREATE DATABASE, CREATE TABLE TO Mary, John, [Corporate\BobJ]

-- B. 權限階層中授予物件權限
USE pubs
GRANT SELECT ON authors TO public
GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom

-- C. 給 SQL Server 角色授予權限
GRANT CREATE TABLE TO Accounting

-- D. 使用 AS 選項授予權限
/* User Jean */ GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION
/* User Jill */ GRANT SELECT ON Plan_Data TO Jack AS Accounting
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved