授予用戶u1對兩個表的所有許可權
① oracle中有沒有賦予一個用戶查詢另一個用戶所有表的許可權
||可以的,在用戶1中執行:
select 'grant ALL on用戶1.'||object_name|| ' to 用戶2;'
from user_objects
where (object_type='TABLE' or object_type='VIEW') ;
然後在用戶2中把用戶1的查詢結果運行一遍,就是把用戶1的表許可權都給用戶2,這樣用戶2就可以查用戶1的表和視圖了! 在用戶2下執行查詢語句為:select * from 用戶1.表名
當然直接賦予用戶2 dba許可權也行!
② 試寫出「把對SC表的所有權限授予用戶U1,並允許他授予別人」的SQL語句
GRANT all ON SC TO U1 WITH GRANT OPTION;
③ oracle 創建用戶授予許可權問題
--許可權要精細化控制
--下面這個plsql可以給u1授予對表空間s1下所有表 增,刪,改,查的許可權
--u1之後創建的表你可以反復執行這個plsql
begin
for xx in (select 'grant select,insert,update,select on '||owner||'.'||table_name||' to u1' esql from dba_tables where tablespace_name='S1') loop
execute immediate xx.esql
end loop;
end;
/
④ sql2008 把兩個表對用戶同時授予全部許可權,可為什麼這個逗號提示錯誤如圖
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]
語法中,on部分僅一個對象,to部分可以多個(逗號隔開內表示可以同時賦容予)
⑤ sql怎麼授予對多張表的訪問許可權啊,格式怎樣的,而且只能對表中的一行,就是用戶自己資料的那一行訪問
沒辦法動態對多張表授權,但可以一張一張添加熱授權
比如:
創建帳號
grant select,update,instert on mydb.a on test@'localhost' identified by 'test';
添加另一張表授權
grant select,update,instert on mydb.b on test@'localhost' ;
不能只對一行做限制
⑥ sql把查詢Student表的許可權授給用戶U1出現錯誤
grant select on student to u1;
⑦ 把表course的刪除許可權賦值給新建用戶U1,並允許U1授權給其他用戶
把表course的刪除許可權賦值給新建用戶U1,並允許U1授權給其他用戶?寶貝你看著
⑧ 如何用SQL語句對所有的用戶表授權
RANT語句的一般格式為:
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;
⑨ 如何用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;