Oracle 用户管理

1.      创建用户

概述:在Oracle中要创建一个新的用户使用create   user语句,一般是具有dba的权限才能使用。

Create  user 用户名 identified  by密码;(oracle密码必须以字母开头)

2.      给用户修改密码

概述:如果给自己修改密码可以直接使用

Password  用户名

如果给别人修改密码,则需要具有dba的权限,或者拥有alter user的系统权限

SQL>alter user 用户名 identified by新密码

3.      删除用户

概述:一般以dba的身份去删除某个用户,如果用其他的用户去删除则需要drop  user的系统权限

Drop  user 用户名【cascade

在删除用户时,注意:

如果要删除的用户已经创建了表,那么就需要在删除的时候带一个参数cascade

 

 

4.      权限和角色

概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke
综合案例:

SQL> conn xiaoming/m12; 
ERROR: 
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 
警告: 您不再连接到 ORACLE
SQL> show user; 
USER 
 "" 
SQL> conn system/manager as system; 
已连接。 
SQL> grant connect to xiaoming; 
授权成功。 
SQL> conn xiaoming/m12;

已连接。 
SQL> 
注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。


  * 希望xiaoming用户可以去查询scottemp
    grant select on emp to xiaoming 
  * 
希望xiaoming用户可以去修改scottemp
    grant update on emp to xiaoming 
  * 
希望xiaoming用户可以去修改/删除,查询,添加scottemp
    grant all on emp to xiaoming 
  * scott
希望收回xiaomingemp表的查询权限
    revoke select on emp from xiaoming

* 希望xiaoming用户可以去查询scottemp/还希望xiaoming可以把这个权限继续给别人。
--如果是对象权限,就加入 with grant option
  grant select on emp to xiaoming with grant option 
操作过程: 
 SQL> conn scott/tiger; 
 
已连接。 
 SQL> grant select on scott.emp to xiaoming with grant option; 
 
授权成功。 
 SQL> conn system/manager as sysdba; 
 
已连接。 
 SQL> create user xiaohong identified by m123; 
 
用户已创建。 
 SQL> grant connect to xiaohong; 
 
授权成功。 
 SQL> conn xiaoming/m12; 
已连接。 
SQL> grant select on scott.emp to xiaohong; 
授权成功。

 

--如果是系统权限。
system
xiaoming权限时:
grant connect to xiaoming with admin option 
 

问题:如果scottxiaomingemp表的查询权限回收,那么xiaohong会怎样?
答案:被回收。 
SQL> conn scott/tiger; 
已连接。 
SQL> revoke select on emp from xiaoming; 
撤销成功。 
SQL> conn xiaohong/m123; 
已连接。 
SQL> select * from scott.emp; 
select * from scott.emp 
 1 行出现错误:
ORA-00942: 
表或视图不存在

结果显示:小红受到诛连了。

5.     使用profile管理用户口令

概述:profile是口令限制,资源限制的命令集合,当建立数据库的,oracle会自动建立名称为defaultprofile。当建立用户没有指定profile选项,那么oracle就会将default分配给用户。

5.1.账户锁定
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间()一般用dba的身份去执行该命令。
例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
创建profile文件
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;

5.2..给账户(用户)解锁
SQL> alter user tea  account unlock;

5.3..终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。
例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。
SQL> create profile myprofile limit password_life_time 10 password_grace_time  2;
SQL> alter user tea profile myprofile;

5.4口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
例子: 
1
)建立profile 
SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10
password_reuse_time //
指定口令可重用时间即10天后就可以重用
2
)分配给某个用户 
5.5
删除profile
概述:当不需要某个profile文件时,可以删除该文件。
SQL> drop profile password_history 
casade
注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。

加了casade,就会把级联的相关东西也给删除掉

猜你喜欢

转载自xty88645.iteye.com/blog/1940182