revokesql
看我下面的例子
如果你是本地庫的話可以用系統驗證方式登錄
sqlplus / as sysdba
然後再給SYS賦權。
SQL> conn sys/sys as sysdba
Connected.
SQL> create user test identified by test;
User created.
SQL> grant all privileges to test;
Grant succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'
SQL> conn sys/sys as sysdba
Connected.
SQL> grant dba to test;
Grant succeeded.
SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'
SQL> conn sys/sys as sysdba
Connected.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL> grant sysdba to test;
Grant succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
TEST TRUE FALSE
SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'
SQL> conn test/test as sysdba
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'
SQL> revoke sysdba from sys;
revoke sysdba from sys
*
ERROR at line 1:
ORA-01998: REVOKE failed: user SYS always has SYSOPER and SYSDBA
❷ SQL命令動詞(create,drop,alter,select,insert,update,delete,grant,revoke)是什麼意思
數據查詢 SELECT(查詢)
數據定義 CREATE(創建表、視圖。。。)、DROP(刪除表、視圖。。。)、ALTER(修改表、視圖。。。)、
數據操作 INSERT(添加數據)、UPDATE(修改數據)、DELETE(刪除數據)
數據控制 GRANT(為用戶授權)、REVOKE(廢除許可權)
❸ SQL語句:GRANT或revoke應該是支持對列的許可權操作的吧,具體應該怎麼寫如以下例
grant UPDATE on 表名 (列名) to 用戶名
這樣
問題2,資料庫裡面的許可權作用范圍在本資料庫,如果是伺服器許可權的話就是該伺服器羅,一般不用特別指定
❹ 回收用戶User1對b表的查詢許可權的sql語句是什麼求高手指教!!急!!
工具/材料:以Management Studio為例。
1、首先在桌面上,點擊「Management Studio」圖標。
❺ SQL server中的revoke cascade(用戶許可權回收問題)
如果不加,會出現像下面這種樣子的錯誤。
消息 4611,級別 16,狀態 1,第 1 行
若要撤消或拒絕可授予的特權,請指定 CASCADE 選項。
原因:
因為 U5可以轉讓insert許可權
也就是以前執行的是:
GRANT insert on sc TO u5 With Grant Option
那麼這個 u5 用戶登錄以後。
可以
GRANT insert on sc TO 其它的用戶。
revoke insert
on sc
from u5 cascade
目的是把 給 u5 的許可權回收回來, 同時把 u5 授權給其他用戶的許可權,也回收。
下面以一個例子來演示:
我的資料庫上面,有 A 與 B , 兩個用戶。
我首先用管理員帳戶,執行
GRANT SELECT ON Goods TO A With Grant Option
然後我用 A 用戶登錄。
執行了
1> GRANT SELECT ON Goods TO B With Grant Option
2> go
也就是 A 又給B 授權,允許B訪問 Goods表,且還能授權給別人。
現在回到管理員帳戶上
執行
REVOKE SELECT ON Goods FROM A CASCADE
從而把 A 的許可權收回, 同時也把 A 給 B賦 的許可權也收回。
那麼現在 A 和 B 都沒有許可權訪問 Goods 表了。
假如沒有 cascade 連帶刪除的話,那麼管理員把 A 的許可權收回了。 但是 B還有許可權。B還可以再把許可權給 A,還可以給 C,D,E,F,G。
沒有 cascade 的話,管理員要累死的。
❻ .SQL語言的REVOKE語句實現下列哪一種數據控制功能
REVOKE 實現了 收回用戶 指定許可權的功能。 例如: revoke create table from user; --收回了user 建表的許可權 revoke delete on scott.emp from user; --收回了user對scott用戶emp表的刪除許可權。
與grant實現功能相反。
❼ SQL語句完成核心功能的九個動詞是什麼
1、SELECT:查詢出數據,也可用於變數賦值
2、CREATE:創建
3、DROP:刪除
4、ALTER:修改
5、INSERT:插入
6、UPDATE:更新
7、DELETE:刪除
8、Grant:授權
9、revoke:回收許可權
(7)revokesql擴展閱讀
語法
SQL語言分成了幾種要素,包括:
1、子句,是語句和查詢的組成成分。(在某些情況下,這些都是可選的。)[14]
2、表達式,可以產生任何標量值,或由列和行的資料庫表
3、謂詞,給需要評估的SQL三值邏輯(3VL)(true/false/unknown)或布爾真值指定條件,並限制語句和查詢的效果,或改變程序流程。
4、查詢,基於特定條件檢索數據。這是SQL的一個重要組成部分。
5、語句,可以持久地影響綱要和數據,也可以控制資料庫事務、程序流程、連接、會話或診斷。
6、SQL語句也包括分號(";")語句終結符。盡管並不是每個平台都必需,但它是作為SQL語法的標准部分定義的。
7、無意義的空白在SQL語句和查詢中一般會被忽略,更容易格式化SQL代碼便於閱讀。
標准化
各種資料庫的SQL方言通常不可移植,特別是在日期時間語法、字元串連接、NULL、比較的大小寫敏感方面。只有PostgreSQL與Mimer SQL努力遵從標准。Oracle資料庫的DATE行為如同DATETIME,缺少TIMEtype)。
SQL在1986年被ANSI標准化,1987年被ISO標准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange維護。標准名稱通常為如下模式:ISO/IEC 9075-n:yyyy Part n: title。
❽ 請用SQL的GRANT 和REVOKE語句(加上視圖機制)完成以下授權定義或存取控制功能:
如何讓資料庫的用戶,只能 SELECT 到自己 INSERT 的數據。如何讓資料庫的用戶,只能看到自己創建的數據。
--創建測試表
-- 3個欄位,1自增主鍵,1數據,1所有者。
CREATE TABLE B (
ID INT identity(1, 1) PRIMARY KEY,
DATA VARCHAR(10),
OWNER VARCHAR(20)
);
go
-- 視圖,隱藏所有者這一列
-- 並強制只能檢索 所有者 = 當前登錄用戶
CREATE VIEW VB AS
SELECT
ID, DATA
FROM
B
WHERE
OWNER = user;
go
-- 首先插入3條數據,模擬用戶 A,B,C
INSERT INTO B
SELECT 'A', 'A' UNION ALL
SELECT 'B', 'B' UNION ALL
SELECT 'C', 'C'
go
--然後 創建觸發器,確保插入數據的時候,OWNER = 當前登錄用戶.
CREATE TRIGGER BeforeInsertB
ON B
FOR INSERT
AS
BEGIN
UPDATE
B
SET
Owner = user
FROM
B JOIN INSERTED ON (B.id = INSERTED.ID);
END
go
-- 開始模擬自己的插入
INSERT INTO VB VALUES( 'Me' );
GO
-- 嘗試檢索
SELECT * FROM VB
GO
ID DATA
----------- ----------
4 Me
(1 行受影響)
只看到自己插入的數據。
-- 下面去 創建 A , B 用戶。
CREATE LOGIN A
WITH PASSWORD='A',
DEFAULT_DATABASE=[Test],
DEFAULT_LANGUAGE=[簡體中文],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF;
CREATE LOGIN B
WITH PASSWORD='B',
DEFAULT_DATABASE=[Test],
DEFAULT_LANGUAGE=[簡體中文],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF;
CREATE USER [A]
FOR LOGIN [A];
CREATE USER [B]
FOR LOGIN [B];
-- 對 A,B 用戶進行 VIEW 的授權,
GRANT
INSERT, SELECT, UPDATE
ON [Test].[dbo].[VB]
TO A;
GRANT
INSERT, SELECT, UPDATE
ON [Test].[dbo].[VB]
TO B;
GO
-- 分別以 A 用戶 和 B 用戶進行登錄,並查詢。
E:\>sqlcmd -S "localhost\SQLEXPRESS" -U A -P A
1> use test
2> select * from vb
3> go
已將資料庫上下文更改為 'test'。
ID DATA
----------- ----------
1 A
(1 行受影響)
1> select * from B
2> go
消息 229,級別 14,狀態 5,伺服器 HOME-BED592453C\SQLEXPRESS,第 1 行
拒絕了對對象 'B' (資料庫 'test',架構 'dbo')的 SELECT 許可權。
E:\>sqlcmd -S "localhost\SQLEXPRESS" -U B -P B
1> use test
2> go
已將資料庫上下文更改為 'test'。
1> select * from vb
2> go
ID DATA
----------- ----------
2 B
(1 行受影響)
1> select * from B
2> go
消息 229,級別 14,狀態 5,伺服器 HOME-BED592453C\SQLEXPRESS,第 1 行
拒絕了對對象 'B' (資料庫 'test',架構 'dbo')的 SELECT 許可權。
1> INSERT INTO vb VALUES ('B Only');
2> go
(1 行受影響)
1> select * FROM VB;
2> go
ID DATA
----------- ----------
2 B
5 B Only
(2 行受影響)
結果顯示,A,B用戶登錄以後,只能看到 Owner = 自己的數據。
因為只有對 View 有許可權,對原始的表沒有許可權,因此看不到別人的數據。
❾ 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子句,
則普通用戶獲權後,可把自己的許可權授予其他用戶。
(9)revokesql擴展閱讀:
回收revoke
revoke語句:收回授予的許可權
revoke一般格式:
revoke <許可權> [,<許可權>]…
on <對象類型 > <對象名> [,<對象類型 > <對象名>]..
from <用戶> [,<用戶>]…
[cascade | restrict];
例子:收回所有用戶對表SC的查詢許可權
revoke select
on table sc
from public;