sql授權語句
A. 在sql語言中授權的操作是通過__________語句實現的
grant語句。
具體語法可能不同的DBMS有所區別,查看各DBMS的手冊。
PG中的語法:
GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { USAGE | SELECT | UPDATE }
[,...] | ALL [ PRIVILEGES ] }
ON SEQUENCE sequencename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE dbname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { USAGE | ALL [ PRIVILEGES ] }
ON LANGUAGE langname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schemaname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { CREATE | ALL [ PRIVILEGES ] }
ON TABLESPACE tablespacename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT role [, ...] TO username [, ...] [ WITH ADMIN OPTION ]
B. SQL語言的GRANT和REVOKE語句主要是用來維護資料庫的
選C,SQL語言的GRANT和REVOKE語句主要是用來維護資料庫的安全性。
GRANT 和 REVOKE 兩個語句分別是授予許可權和回收許可權語句,具有對 SQL語言的安全控制功能。
1、授權命令 grant,語法格式(SQL語句不區分大小寫):Grant <許可權> on 表名[(列名)] to 用戶 With grant option
或 GRANT <許可權> ON <數據對象> FROM <資料庫用戶>
//數據對象可以是表名或列名
//許可權表示對表的操作,如select,update,insert,delete
2、註:授權命令是由資料庫管理員使用的,若給用戶分配許可權時帶With grant option子句,
則普通用戶獲權後,可把自己的許可權授予其他用戶。
(2)sql授權語句擴展閱讀:
回收revoke
revoke語句:收回授予的許可權
revoke一般格式:
revoke <許可權> [,<許可權>]…
on <對象類型 > <對象名> [,<對象類型 > <對象名>]..
from <用戶> [,<用戶>]…
[cascade | restrict];
例子:收回所有用戶對表SC的查詢許可權
revoke select
on table sc
from public;
C. 在SQL SERVER中授權語句是否一次只能給一個表授權
是的,一次只能一個表。
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
自己看看就知道了
D. sql中如何用什麼語句給用戶授權
sql語言用grant語句向用戶授予操作許可權,grant語句的一般格式為:
grant
<許可權>[,<許可權>]...
[on
<對象類型>
<對象名>]
to
<用戶>[,<用戶>]...
[with
grant
option];
其語義為:將對指定操作對象的指定操作許可權授予指定的用戶。
不同類型的操作對象有不同的操作許可權,常見的操作許可權如表3-4所示。
表3-4
不同對象類型允許的操作許可權
對象
對象類型
操作許可權
屬性列
table
select,
insert,
update,
delete
all
privieges
視圖
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
資料庫
database
createtab
詳細信息…
接受許可權的用戶可以是一個或多個具體用戶,也可以是public即全體用戶。
如果指定了with
grant
option子句,則獲得某種許可權的用戶還可以把這種許可權再授予別的用戶。如果沒有指定with
grant
option子句,則獲得某種許可權的用戶只能使用該許可權,但不能傳播該許可權。
例1
把查詢student表許可權授給用戶u1
grant
select
on
table
student
to
u1;
例2
把對student表和course表的全部許可權授予用戶u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把對表sc的查詢許可權授予所有用戶
grant
select
on
table
sc
to
public;
例4
把查詢student表和修改學生學號的許可權授給用戶u4
詳細信息…
這里實際上要授予u4用戶的是對基本表student的select許可權和對屬性列sno的update許可權。授予關於屬性列的許可權時必須明確指出相應屬性列名。完成本授權操作的sql語句為:
grant
update(sno),
select
on
table
student
to
u4;
例5
把對表sc的insert許可權授予u5用戶,並允許他再將此許可權授予其他用戶
grant
insert
on
table
sc
to
u5
with
grant
option;
詳細信息…
執行此sql語句後,u5不僅擁有了對表sc的insert許可權,還可以傳播此許可權,即由u5用戶發上述grant命令給其他用戶。
例如u5可以將此許可權授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同樣,u6還可以將此許可權授予u7:
grant
insert
on
table
sc
to
u7;
因為u6未給u7傳播的許可權,因此u7不能再傳播此許可權。
例6
dba把在資料庫s_c中建立表的許可權授予用戶u8
grant
createtab
on
database
s_c
to
u8;