您的位置:首页 > 数据库 > Oracle

[Oracle]用户创建以及权限管理

2014-07-31 00:27 501 查看
#创建用户需要管理员权限
SQL> create user lzz identified by lzz123;//这样创建了一个普通用户,但是还没有解锁
#给用户修改密码
#给自己的话:
SQL> password
更改 SCOTT 的口令
旧口令: ****
新口令:****
重新键入新口令:****
口令已更改
#给用户的话:
SQL> alter user lzz identified by lzz;
#删除用户(拥有DBA)权限,或者拥有drop user的权限,不可以自己删除自己
#如果要删除的用户已经创建了表,那么就需要在删除时带一个参数cascade
SQL> drop user lzz
用户已删除。

#拥有给其他用户赋予权限的用户有sys、system,权限的种类很多,有100多种
#角色:角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。
自定义角色:用户根据需要自己定义权限给角色
预定义角色:系统预先定义好的(connec,dba,resource)
语句是:grant connect to lzz;
#数据对象:表和视图,其他还有约束、序列、函数、存储过程等等
#Oracle的权限有2种
系统权限:指的是用户对数据库的相关权限
对象权限:用户对其他用户的数据对象的操作权限(select,insert,update,delete,all)
命令:grant select on emp to lzz;
#收回权限的语法
例如:revoke select on emp from lzz;
#对权限的维护工作
权限的传递:
--如果是对象权限就加入with grant option
例如:grant select on emp to lzz with grant option;
--如果是系统权限就加入with admin option
例如:grant connect to xiaoming with admin option;
#使用profile管理用户口令
profile是口令限制,资源限制的命令集合
(1)账户锁定:指定用户登录时最多可以输入密码的次数,也可以指定锁定
的时间,一般由dba用户执行该命令;
案例:创建profile文件
SQL> create profile aa limit
2  failed_login_attempts 3 password_lock_time 2;
配置文件已创建。
SQL> alter user qinke profile aa;
用户已更改。
#三次错误之后再写正确的密码
SQL> conn qinke/qinke;
ERROR:
ORA-28000: the account is locked
(2)给账户解锁:
SQL> alter user qinke account unlock;
用户已更改。
(3)终止口令:为了让用户定期修改密码可以使用终止口令来完成
案例:每个10天修改,宽限为2天(单位均以天计算)
SQL> create profile aaa limit password_life_time 10 password_grace_time 2;
配置文件已创建
SQL> alter user qinke profile aaa;
用户已更改。
#删除profile
drop profile password_his [cascade];
这是几个小操作:

1 创建一个对象lzz,并使其可以登录(系统权限)

 


 


 

给此用户添加一个可以预定义的角色

成功。

2 lzz这个用户可以创建表

 


3 lzz这个用户可以查询scott的emp表(对象权限)

 


4 scott用户回收lzz查询scott的emp表的查询权限

 


 

5 lzz获得scott的emp表的查询权限并且传递给qinke

 



?当scott把emp表的查询权限回收了,那么qinke会怎么样

答案是qinke也无法再查询到emp表的信息了(株连)

 



 



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 权限