oracle中角色和用户权限,Oracle用户、角色、权限管理
用戶在會(huì)話的權(quán)利上,應(yīng)該有其他操作的權(quán)利;Oracle的用戶和口令不區(qū)分大小寫,真是讓人大跌眼鏡;Oralce中,所有用戶必須明確被
create or replace type address as object(province varchar
(20),city varchar(20));
alter TRIGGER SYS.JIS$ROLE_TRIGGER$ compile;
create table test(id number primary key,name char(50));
表空間授權(quán)
alter user 用戶 quota unlimited on 表空間;
alter user test quota unlimited on test;
創(chuàng)建用戶
create user 用戶名 identified by 口令;
create user icwallet identified by icwallet;
刪除用戶
drop user cascade
修改密碼
alter user 用戶名 identified by 口令;
alter user icwallet identified by icwallet;
鎖定:
alter user 用戶名 account lock;
授權(quán)
revoke
grant create session to the_username;
grant system_privilege to username [with admin option];
創(chuàng)建數(shù)據(jù)庫(kù)角色
create role role_name;
create role role_name identified by role_password
第一:用戶管理*******************************************
用戶至少需要會(huì)話的權(quán)利,否則連接也不成功;
用戶在會(huì)話的權(quán)利上,應(yīng)該有其他操作的權(quán)利;
Oracle的用戶和口令不區(qū)分大小寫,真是讓人大跌眼鏡;
Oralce中,所有用戶必須明確被授權(quán),才可以操作;
SQL Server中,創(chuàng)建的用戶自動(dòng)就擁有了一些權(quán)限;
Oracle不依賴操作系統(tǒng);SQL Server依賴Windows;
MicroSoft假定大多數(shù)用戶都是合法用戶,采取樂(lè)觀態(tài)度;
Oracle首先假定用戶都是不安全的,采取悲觀態(tài)度;
Oracle中的用戶是互相隔離的,稱為用戶模式;
內(nèi)置用戶:
sys,網(wǎng)絡(luò)管理員,最高權(quán)限;
當(dāng)你試圖輸入了用戶名:sys
密碼:通用
之后,你發(fā)現(xiàn)連接不上;
而輸入 用戶名:system
密碼:通用
或者 用戶名:scott
密碼:tiger
的時(shí)候都可以連接,所以你認(rèn)為
sys的權(quán)限沒(méi)有system高;
其實(shí)正是因?yàn)閟ys的權(quán)限高,所以你必須以
dba的身份來(lái)登陸:sys/通用 as sysdba
//可以使用數(shù)據(jù)字典user_users來(lái)查看當(dāng)前用戶管理的用戶:
select * from user_users;
而dba_users可以查看dba管理的用戶;
system,只管理本機(jī)上的數(shù)據(jù)庫(kù);
而all_users查看所有用戶,只能由dba來(lái)查看;
******創(chuàng)建用戶:
create user 用戶名 identified by 口令 [externally]
[default tablesapce 表空間名]
[temporary tablespace 臨時(shí)表空間名]
[quota 整數(shù) K|M|unlimited on 表空間名]
//注意:創(chuàng)建用戶必須有dba的權(quán)限;
******查詢用戶:
其實(shí)就是對(duì)表user_users/dba_users/all_users進(jìn)行查詢,
只不過(guò)這里不把他們叫表,叫數(shù)據(jù)字典;而且數(shù)據(jù)字典是系統(tǒng)
維護(hù)的;
*******修改用戶:
alter user.....//后面和創(chuàng)建一樣;
Oracle中一個(gè)實(shí)例就是一個(gè)數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)相當(dāng)與SQL Server的全
部數(shù)據(jù)庫(kù);
Oracle的一個(gè)數(shù)據(jù)庫(kù)被分為很多個(gè)表空間,每個(gè)表空間相當(dāng)于SQL
Server中的一個(gè)數(shù)據(jù)庫(kù);
實(shí)例演示:
create user student_user
identified by student
default tablespace users
temporary tablespace temp
quota 5m on users
quota 3m on temp
/其中,users,temp都是內(nèi)置的表空間,student_user在users里有5m空
間,在temp里有3m;
新創(chuàng)建的用戶是沒(méi)有權(quán)利的:
SQL> conn student_user/student;
ERROR:
ORA-01045: user STUDENT_USER lacks CREATE SESSION privilege;
logon denied
警告: 您不再連接到 ORACLE。
*****限制用戶
鎖定:alter user 用戶名 account lock;
效果:
SQL> alter user student_user account lock;
用戶已更改。
SQL> conn student_user/student;
ERROR:
ORA-28000: the account is locked
警告: 您不再連接到 ORACLE。
解鎖:alter user 用戶名 account unlock;
口令無(wú)效:alter 用戶名 password expire; 當(dāng)用戶創(chuàng)建了很多表,
如果直接刪除用戶,它下面的表都將被刪除,所以我們可以
只使得它的口令無(wú)效;
//可見,表是用戶的手下,,用戶沒(méi)了,用戶創(chuàng)立的表,占用的空間都就
沒(méi)了;
//所以,一般情況下,我們不要?jiǎng)h除用戶;
****刪除用戶:
drop user 用戶名[cascade]
//cascade是強(qiáng)制刪除,即使有別人正在用這個(gè)用戶的表;
//數(shù)據(jù)庫(kù)管理語(yǔ)句是自動(dòng)結(jié)束事務(wù)的,沒(méi)有rollback的機(jī)會(huì);
第二:權(quán)限管理***********************************************
授權(quán):grant [系統(tǒng)特權(quán)名] [角色] [on 被授權(quán)操作表名] to [用戶名
列表]
[public][with admin option]
如果是dcl語(yǔ)句,就不用on 被授權(quán)操作表名
grant all on student to public:把對(duì)student的所有權(quán)限授予所有
用戶;
數(shù)據(jù)字典:user_sys_privs
select * from user_sys_privs
權(quán)限收回:
revoke 權(quán)限列表 on 表 from 用戶;
SQL> revoke create table from iam;
撤銷成功。
撤消只是撤消本次授權(quán)的權(quán)限,所以如果某個(gè)用戶原來(lái)就有某個(gè)權(quán)利,
而你又給它授了同樣的一個(gè)權(quán)利,然后你收回這個(gè)權(quán)限的時(shí)候,它原來(lái)
就具有的這個(gè)權(quán)利還是有的;
第三:角色管理*****************************************
因?yàn)橐粋€(gè)用戶可能需要某些權(quán)限的集合,當(dāng)我們得到一新的用戶的時(shí)候
,我們需要給一個(gè)
用戶依次授權(quán)每個(gè)它需要的權(quán)限;角色正是一個(gè)權(quán)限的集合,用戶可以
直接被授予這個(gè)
角色,用戶自然就擁有了它的角色所擁有的權(quán)利;
創(chuàng)建角色:
create role 角色名 [no identified|identified by 口令
|externally]
not identified:指出授予該角色的用戶在使用時(shí)不需要檢驗(yàn);
identified by:指出授予該角色的用戶在使用set role命令時(shí)需要檢
驗(yàn);
收回權(quán)限:revoke 權(quán)限 from 角色名;
//角色就是權(quán)限的集合;
實(shí)例:
create role student_role
/
grant create table,create session,create view to student_role
本條技術(shù)文章來(lái)源于互聯(lián)網(wǎng),如果無(wú)意侵犯您的權(quán)益請(qǐng)點(diǎn)擊此處反饋版權(quán)投訴 本文系統(tǒng)來(lái)源:php中文網(wǎng)
總結(jié)
以上是生活随笔為你收集整理的oracle中角色和用户权限,Oracle用户、角色、权限管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 余承东:现在苹果手机故障率是华为很多倍
- 下一篇: oracle获取序列跳号,Oracle