用户管理
创建用户
create user zhuopeng identified by zzz111 ;
显示当前用户
show user ;
修改密码
password zhuopeng ;
删除用户的时候,
Drop user ;
注意: 如果删除的用户,已经创建了表,那么在删除的时候需要带一个参数。Casecade
授权
创建的用户是没有任何的权限的。
甚至都不能登录数据库。
如果希望可以登录数据库则需要另一个用户(system,sys)给他权限
grant connect to zhuopeng ;
Oracle有两种权限:系统权限(用户对数据库访问的权限)
-crate session (会话)
对象权限(用户对其他用户的数据对象访问的权限)
(select , insert , update , all ,delete 。。。。。)
-数据对象(表,视图,过程)
角色的概念:
系统权限和对象权限很多。就如同权限的批量授权。
角色分两种:
-自定义角色
-预定义角色
例如 dba,resource,connect 权限
下面希望,zhuopeng这个用户可以创建表
命令:
create table test(
userid varchar2(30),
username varchar2(30) ) ;
结果会显示没有权限
需要再次授权 见表的权限
命令:
grant resource to zhuopeng ;
然后就可以通过命令 desc test 查看表结构。
下面希望,zhuopeng这个用户可以查看scott下的emp这个表
这个时候就要再次给zhuopeng这个用户授权。
命令:
切换到scott用户下输入:
grant select on emp to zhuopeng ;
然后切换到zhuopeng用户下输入命令:
Select * from scott.emp ;
Scott叫 方案
下面希望zhuopeng修改emp表格
命令:
grant update on emp to zhuopeng ;
如果希望zhuopeng对emp表格进行各种操作的话
命令:
Grant all on emp to zhuopeng ;
回收权限:
Scott 希望收回zhuopeng对emp表的查询权限。
Revoke select on emp from zhuopeng ;
权限的传递
对权限的维护的工作。
希望zhuopeng用户可以查看scott的表格,还希望zhuopeng把这个权限继续给别人。
如果是对象权限就在后面加上with grant option ;
例如:
Grant select on emp to zhuopeng with grant option ;
如果scott收回了zhuopeng 的访问权限,那么zhuopeng通过zhuopeng获得访问权限的用户都没有了访问的权限。
如果是系统权限就在后面加上with admin option;
例如:
Grant connect to zhuopeng with admin option ;
账户锁定
例子:指定用户zhuopeng最多三次尝试登陆,否则ban两天。
创建profile文件,这个规则就是写在这个文件中的,dba能做。
Sql> create profile lock_account(文件名字) limit failed_login_attempts 3 password_lock_time 2 ;
3代表登陆三次失败,2代表锁定两天。
然后用命令
Sql> alter user zhuopeng profile lock_account ;
解锁
Sql> alter user zhuopeng profile unlock ;
终止口令
让用户每隔10天让用户更改密码,宽限期为2天。
DBA必须要常常修改的。
Sql > create profile myprofile limit password_life_time 10 password_grace_time 2 ;
Sql > alter user system profile myprofile ;
口令历史
不能在10天之内使用老密码
Sql > create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 ;
Sql >删除
Drop profile password_history [cascade] ;