oracle用户的管理

Posted on 2018-12-17 15:29  忆灬风  阅读(126)  评论(0编辑  收藏  举报

用户登陆

sql>conn 用户名/密码

给用户修改密码

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

sql>password 用户名;

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

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

删除用户

一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。

比如drop user 用户名 cascade;

用scott给用户授权

grant connect to xiaoming;  //给用户xiaoming授予登陆功能

grant select on emp to xiaoming;  //给用户xiaoming授予查询emp表的功能

select * from scott.emp;  //用户xiaoming查询scott下的emp表

希望xiaoming用户可以去修改、删除、查询、添加scott的emp表

grant all on emp to xiaoming;

用scott收回xiaoming对emp表的查询权限

revoke select on emp from xiaoming

希望xiaoming用户可以去查询scott的emp表,还希望xiaoming可以把这个权限继续传递下去

grant select on scott.emp to xiaohong with grant option //如果是对象权限

grant connect to xiaoming with admin option //如果是系统权限授予权限时

 

使用profile管理用户口令

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

(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;

(2)给账户(用户)解锁

sql>alter user scott account unlock;

(3)终止口令

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

例:给前面创建的用户scott创建一个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 pfofile 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);

Copyright © 2024 忆灬风
Powered by .NET 8.0 on Kubernetes