用戶A給用戶B受權表的權限sql
--使用dba登陸Oracle受權:
數據庫
GRANT
SELECT
,
UPDATE
,
DELETE
ON
usera.<表名>
TO
userb;
--或
GRANT
ALL
ON
usera.<表名>
TO
userb;
一、給數據庫用戶受權(對象爲用戶表)
GRANT
privilege[, ...]
ON
object[, ...]
TO
{
PUBLIC
|
GROUP
group
| username}
privilege:
select
:查詢
insert
:插入
update
:更新
delete
:刪除
rule
:
all
:全部
grant
select
,
insert
,
update
on
tablename
to
public
;
給全部用戶授予查詢、插入、更新tablename表的權限
revoke
select
,
insert
,
update
on
tablename
from
public
;//收回全部用戶查詢、插入、更新tablename表的權限
object:
table
:表
view
:視圖
sequence
:序列
index
:索引
grant
select
,
insert
,
update
on
tablename,viewname,sequencename,indexname
to
public
;
public
:對全部用戶開放權限
GROUP
groupname:對該組全部用戶開放權限
username:對指定用戶開放權限
二、給數據庫用戶受權(對象多爲系統表,如dba能夠查看的表)
grant
dba
to
username;
不給用戶授予dba權限,用戶將沒法查看系統表,例如v$datafile,dba_data_files等
revoke
dba
from
username;//對用戶username回收dba權限
注:若是使用pl/sql登陸,授予dba權限後,須要從新登錄(初始理解,錯誤)
後經驗證,不須要從新登錄,只須要從新打開一個會話就能夠
理解:數據庫的全部權限操做,都是以會話爲單位,若是當前會話執行時沒有dba權限,即使是已經從新賦予了權限,在當前會話中也是不起做用的
而若是當前會話有dba權限,然後臺取消了權限,那麼當前會話的dba權限也不會消失
grant
connect
to
username;
不給新建用戶授予
connect
權限,新建用戶沒法經過SID或SERVICE_NAME鏈接數據庫實例,即沒法登陸數據庫
revoke
connect
to
username;//對用戶username回收
connect
權限
grant
resource
to
username
with
admin
option
;
grant
unlimited tablespace
to
username
with
admin
option
;
不給新建用戶授予resource權限,新建用戶沒法建立表
revoke
resource
from
username;//對用戶回收resource權限
三、查看指定用戶有哪些系統權限
select
*
from
dba_role_privs
where
grantee=
upper
(
'username'
);
四、查看指定用戶有哪些對象權限
select
*
from
dba_tab_privs
where
grantee=
upper
(
'username'
);
可能遇到問題:
一、當在一個新建數據庫用戶上建立表失敗時,能夠查看系統權限
在當前用戶執行
select
*
from
dba_role_privs
where
grantee=
upper
(
'username'
);若是不能執行(提示表或視圖不存在),說明沒有dba權限
解決方法:能夠登陸sys帳戶賦予dba權限
登陸sys:sqlplus /
as
sysdba
給username賦權限:
grant
dba
to
username;
也能夠直接登陸sys帳戶,
select
*
from
dba_role_privs
where
grantee=
upper
(
'username'
),若是granted_role的值沒有dba,說明沒有dba權限
權限相關的查詢和賦予:
全部權限的賦予均是在有賦予權限的用戶下進行,此處受權用戶都是sys用戶
一、
select
*
from
dba_role_privs
where
grantee=
upper
(
'luyongpeng'
);
其中,admin_option是經過在受權時添加
with
admin
option
選項定義
grant
dba
to
luyongpeng
with
admin
option
;//admin_option爲YES,若是不加
with
admin
option
選項,則admin_option爲
NO
使用
grant
dba
to
luyongpeng;沒法覆蓋以前的權限
但
grant
dba
to
luyongpeng
with
admin
option
能夠覆蓋
grant
dba
to
luyongpeng;的權限