用户登陆
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);