oracle的用户管理
1. 创建用户(需要具有dba权限的用户才能操作,比如system/sys)
create user 用户名 identified by 密码
//oracle要求用户密码不能用字数开始
//SQL语句创建好的用户仍无法正常登录,这是因为oracle刚创建的用户是没有任何权限,
需要管理员给新用户分配相应权限。
2. 如何给用户分配权限
grant create session to 用户名(session是给用户分配登录权限)
/*
分配角色:grant 角色 to 用户名
*/
3. oracle管理用户的机制
管理员可以给新建用户分配权限或者角色(权限的集合)
4. oracle“方案”的概念
当一个用户创建好后,如果该用户创建了任意一个数据对象,这时dbms就会创建一个
对应的方案与该用户对应,并且该方案的名字和用户名一致。
如果想查询某用户方案里的数据对象需要得到该用户赋权限,比如用户xiaohong希望查询scott方案里的表emp
(1)使用scott登录 conn scott/密码
(2)赋权限 grant select[updata/delete/insert/all] on emp to xiaohong
(3)使用xiaohong登录 并 select * from scott.emp;
小技巧:
如果我们希望看到某个用户的方案究竟有什么数据对象,我们可以用pl/sql developer。
5. 使用profile配置文件对口令进行管理
需求:只允许对某个用户,如果三次都没有登录成功,则锁定两天。两天才能重新登录
create profile 配置文件名 limit failed_login_attempts 3 password_lock_time 2; //dba身份创建
配置文件创建后,分配给指定用户以使用→
alter user 用户名 profile 配置文件名 ;
如何给一个用户解锁→
alter user 用户名 account unlock ;
终止口令
需求:一个帐号密码最多使用10天,宽限期为2天。到时必须设置新的密码。否则锁定
create profile 配置文件名 limit password_life_time 10 password_grace_time 2;
分配文件→
alter user 用户名 profile 配置文件名 ;
解锁→
alter user 用户名 account unlock ;
删除profile
sql>drop profile profile文件名 ;
♦小案例♦
创建一个用户,给他分配两个角色(connect/resource),可以让他可以登录,建表,然后回收角色,最后删除用户
(1)使用system创建xiaohong
create user xiaohong identified by m123
(2)给xiaohong分配角色
grant connect to xiaohong; grant resource to xiaohong;
(3)让xiaohong登录
conn xiaohong/m123
(4)xiaohong创建一张简单的表
create table users(id number); insert into users values(1);
SQL>select * from users;
(5)使用system登录,然后回收角色
revoke connect from xiaohong; revoke resource from xiaohong;
(6)删除用户
drop user 用户名 [cascade]
注意:当删除一个用户的时候,如果用户已经创建过数据,SQL<drop user 用户名>将会删除失败。
需要加选项cascade,表示把用户删掉同时把该用户创建的数据一并删除。//如果想保留数据,可以选择锁定