Oracle学习笔记3_用户管理

******************************创建用户,赋权**************************************

在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用,普通用户会报错:ORA-01031:权限不足。

创建用户语法:create user 用户名 identified by 密码;

但是新创建的用户是没有任何权限的,甚至连登录数据库的权限都没有,所以我们要给用户赋权,赋权使用grant,取消权限使用revoke。

下面对权限做一下简单介绍,Oracle中的权限有很多种,做个简单分类:

Oracle权限-----

          |

          |----系统权限:用户对数据库的相应权限。(140多个)

          |

          |----对象权限:用户对其他用户的数据对象的操作权限。(25个)(数据对象也就是用户创建的表,存储过程,触发器等)

                            |----select

                            |----insert

                            |----delete

                            |----update

                            |------。。。

Oracle中的权限很多,而一个用户可能需要具有多种权限,因此我们依次给用户赋权很麻烦,所以Oracle中有了角色这个概念。角色就是权限的集合。我们可以

把某个角色赋给某个用户,那么就相当于我们一次性赋予用户多个权限,角色简单分类如下:

Oracle角色-----

          |

          |----自定义角色:根据个人需要所定义的角色。

          |

          |----预定义角色:预先定义好的角色,在安装数据库是就已经定义。(connect)

简单介绍两种角色:connect角色使用户可以登录数据库

 dba角色使用户具有管理员权限

 resource用户是用户可以在所有表空间建表。

赋予对象权限:grant select on emp to 用户;

收回权限:revoke select on emp from 用户;

******************************修改用户密码**************************************

如果给自己修改密码,可以直接使用如下命令

sql>password 用户名

如果给其他用户修改密码则需要具有dba权限或者拥有alter user的系统权限

sql>alter user 用户名 identified by 新密码;

在删除用户时,如果用户已经创建了表,那么就需要在删除时使用casecade参数,级联删除。

sql>drop user 用户名;

*******************************使用Profile管理用户口令***************************

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

(1)账户锁定

指定该用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba身份执行该命令。下面来看一个例子:

指定scott用户最多只能尝试三次登录,锁定时间为2天。实现方法如下:

创建profile文件

sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

sql>alter user scott profile lock_account;

(2)给用户解锁

sql>alter user scott account unlock;

(3)终止口令

为了让用户定期修改密码,可以使用终止口令来完成,同样这个命令也需要dba身份来执行。

例:给前面创建的用户创建一个profile文件,要求该用户每隔10天要修改自己的登录密码,宽限期为2天。

sql>create profile myprofile limit password_life_time 10 password_grace_time 2;

sql>alter user scott profile myprofile;

口令历史:如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史,这样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)分配给某个用户

sql>alter user scott profile password_history;

删除profile

当不需要某个profile文件时,可以删除该文件。

sql>drop profile password_history[cascade]

 

猜你喜欢

转载自alex-lip.iteye.com/blog/2101761