建立使用者
SQL> create user feng identified by
f123;
使用者已建立。
使用建立的使用者串連報無許可權
SQL> conn feng/f123
ERROR:
ORA-01045: user FENG lacks CREATE SESSION
privilege; logon denied
警告: 您不再串連到 ORACLE。
SQL> grant create session to feng;
SP2-0640: 未串連
SQL> conn /as sysdba
已串連。
給新使用者授權,並指定使用者資料表空間
SQL> grant create session to feng;
授權成功。
SQL> grant select any table,create
table,create view to feng ;
授權成功。
SQL> select tablespace_name from
dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
SCOTT_SPACE
已選擇6行。
SQL> alter user feng
default tablespace users quota 50M
on users;
使用者已更改。
查看使用者建立的對象
SQL> conn feng/f123
已串連。
SQL> select object_name,created from
user_objects;
未選定行
查看使用者的許可權
SQL> select * from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
SELECT ANY TABLE
CREATE VIEW
查詢最近7天內建立的使用者
SQL> select username ,created from
dba_users
2 where
3
round(created,'day')>=round(sysdate,'day')-7;
USERNAME CREATED
------------------------------
--------------
FENG 21-5月 -11
改變使用者口令
SQL> alter user feng
identified by f456;
使用者已更改。
SQL> conn feng/f456
已串連。
給使用者加解鎖
SQL> alter user feng account lock;
使用者已更改。
SQL> alter user feng account unlock;
使用者已更改。
刪除使用者
SQL> drop user feng;
使用者已刪除。
SQL>drop user 使用者名稱; //使用者沒有建任何實體
SQL> drop user 使用者名稱 CASCADE; // 將使用者及其所建實體全部刪除
*1. 當前正串連的使用者不得刪除。
系統許可權回收:系統許可權只能由DBA使用者回收
SQL> grant connect,resource to feng;
授權成功。
SQL> Revoke connect, resource from feng;
撤銷成功。
實體許可權回收:
SQL>Revoke select , update on
product from feng; //傳遞的許可權將全部丟失
角色管理
.建立一個角色
sql>create
role role1;
2.授權給角色
sql>grant
create any table,create procedure to role1;
3.授予角色給使用者
sql>grant
role1 to user1;
4.查看角色所包含的許可權
sql>select
* from role_sys_privs;
5.建立帶有口令以角色(在生效帶有口令的角色時必須提供口令)
sql>create role role1 identified by password1;
6.修改角色:是否需要口令
sql>alter
role role1 not identified;
sql>alter role role1 identified by password1;
7.設定目前使用者要生效的角色
(註:角色的生效是一個什麼概念呢?假設使用者a有b1,b2,b3三個角色,那麼如果b1未生效,則b1所包含的許可權對於a來講是不擁有的,只有角色生效了,角色內的許可權才作用於使用者,最大可生效角色數由參數MAX_ENABLED_ROLES設定;在使用者登入後,oracle將所有直接賦給使用者的許可權和使用者預設角色中的許可權賦給使用者。)
sql>set
role role1;//使role1生效
sql>set
role role,role2;//使role1,role2生效
sql>set
role role1 identified by password1;//使用帶有口令的role1生效
sql>set
role all;//使用該使用者的所有角色生效
sql>set
role none;//設定所有角色失效
sql>set
role all except role1;//除role1外的該使用者的所有其它角色生效。
sql>select
* from SESSION_ROLES;//查看目前使用者的生效的角色。
8.修改指定使用者,設定其預設角色
sql>alter
user user1 default role role1;
sql>alter user user1 default role all except role1;
9.刪除角色
sql>drop
role role1;
角色刪除後,原來擁用該角色的使用者就不再擁有該角色了,相應的許可權也就沒有了。
說明:
1)無法使用WITH GRANT OPTION為角色授予對象許可權
2)可以使用WITH ADMIN OPTION 為角色授予系統許可權,取消時不是級聯