- #创建用户需要管理员权限
- 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表的信息了(株连)