oracle用戶授權
1. oracle如何新建一個用戶並賦予許可權
CREATE USER username IDENTIFIED BY password;創建用戶
GRANT CREATE SESSION TO username;用戶可以登錄數據
GRANT CREATE TABLE TO username;用戶可以創建
就是這些語句和演算法。
2. oracle如何給用戶創建查詢序列的許可權
1、create user userName identified by password;
2、grant select any table to userName; --授予查詢任何錶
3、grant select any dictionary to userName;--授予 查詢任何字典
執行上面三步就行了,那麼這個用版戶就只有查詢許可權,權其他的許可權都沒有!!
3. oracle里如何對scott用戶授權
許可權分為系統許可權和對象許可權。
授予連接許可權:grant connect to scott;
授予創建表等基本許可權:grant resource to scott;
授予dba:grant dba to scott;
授予使用空間許可權:grant unlimited on tablespace to scott;alter user scott quota unlimited on tablespace_name;
4. oracle創建用戶後需要授哪些許可權
具體需要哪些許可權需要看用戶的實際需要。
系統許可權分類:
DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。
RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。
CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以創建實體,不可以創建資料庫結構。
對於普通用戶:授予connect, resource許可權。
對於DBA管理用戶:授予connect,resource, dba許可權。
系統許可權授權命令:
系統許可權只能由DBA用戶授出:sys, system(最開始只能是這兩個用戶)
授權命令:SQL> grant connect, resource, dba to 用戶名1 [,用戶名2]...;
注:普通用戶通過授權可以具有與system相同的用戶許可權,但永遠不能達到與sys用戶相同的許可權,system用戶的許可權也可以被回收。
5. Oracle用戶授權給另外一個用戶的問題
表A是system用戶建立的,不是userA建立的,userA能直接看到才有問題。
要操作此表只能在表的前面帶用戶版屬性:權
select*fromsystem.a;
updatesystem.asetcol1='aaaa'wherecol2='aa';
如果想直接看得到,system用戶再建一個同義詞給userA用戶:
CREATEORREPLACESYNONYMUSERA.AFORSYSTEM.A;
這個時候就在SYNONYM文件夾看得到,且可以直接訪問得到了。
select*froma;
updateasetcol1='aaaa'wherecol2='aa';
6. 如何查看oracle用戶具有的許可權和角色
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統許可權(直接賦值給回用戶或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能查看登答陸用戶擁有的角色)所包含的許可權
sql>select * from role_sys_privs;
4.查看用戶對象許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
7. oracle創建用戶後一般給什麼許可權
具體需要哪些許可權需要看用戶的實際需要。我們要在有最高許可權的system用戶創建用戶,再賦予新建用戶許可權,只有給新建用戶許可權,新建用戶才能幹什麼。
一、許可權分為系統許可權及對象許可權。
1、系統許可權:系統規定用戶使用資料庫的許可權。(系統許可權是對用戶而言)。
1)、DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。
2)、RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。
3)、CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以創建實體,不可以創建資料庫結構。
對於普通用戶:授予connect, resource許可權。
對於DBA管理用戶:授予connect,resource, dba許可權。
2、對象許可權:某種許可權用戶對其它用戶的表或視圖的存取許可權。(是針對表或視圖而言的)。
CREATE SESSION,創建會話,才可以打開界面
CREATE TABLE,創建表,可創建空表,但沒有許可權插入數據
CREATE SEQUENCE創建序列
CREATE VIEW,創建視圖
(7)oracle用戶授權擴展閱讀
一、賦權方式,有兩種賦予用戶許可權的方式,
1、對用戶賦權
一對一的賦予新建用戶許可權,這樣賦予新建用戶許可權比較有活性,如果新建用戶多了,就比較麻煩。
2、對角色賦權
先創建角色,將許可權先賦給角色代理,最後將角色代理的許可權賦新建用戶,這樣比較死板,但是可以同時賦給很多用戶。
參考資料
Oracle官網-Grant
8. 如何查看oracle用戶具有的許可權和角色
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統許可權(直接賦值給專用戶或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能屬查看登陸用戶擁有的角色)所包含的許可權
sql>select * from role_sys_privs;
4.查看用戶對象許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
9. 如何查看oracle用戶具有的許可權和角色
上次有同學問我,如何查看一個oracle用戶具有的許可權和角色,我一時沒答上來,回頭好好研究了一下,記錄一下,備查:
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用戶或角色系統許可權(直接賦值給用戶或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能查看登陸用戶擁有的角色)所包含的許可權
sql>select * from role_sys_privs;
4.查看用戶對象許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
6.查看用戶或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.查看哪些用戶有sysdba或sysoper系統許可權(查詢時需要相應許可權)
select * from V$PWFILE_USERS
比如我要查看用戶 wzsb的擁有的許可權:
SQL> select * from dba_sys_privs where grantee='WZSB';
GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
WZSB CREATE TRIGGER NO
WZSB UNLIMITED TABLESPACE NO
比如我要查看用戶 wzsb的擁有的角色:
SQL> select * from dba_role_privs where grantee='WZSB';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
WZSB DBA NO YES
查看一個用戶所有的許可權及角色
select privilege from dba_sys_privs where grantee='WZSB'
union
select privilege from dba_sys_privs where grantee in
(select granted_role from dba_role_privs where grantee='WZSB' );