oracle的用户管理
创建用户
一般是具有dba(数据库管理员)的权限才能使用
create user 用户名 identified by 密码;
--密码需以字母开头
给用户修改密码
如果给自己修改密码可以直接使用
password 用户名;
-如果给别人修改密码则需具有dba权限或拥有alter user的系统权限
alter user 用户名 identified by 新密码;
删除用户
一般以dba身份去删除某个用户,如果用其他用户去删除用户,需具有drop user的权限
drop user 用户名;
如果要删除的用户已经创建了表,那么需要在删除时带一个参数cascade
⚠️注意:不可以自己删除自己
oracle权限
权限
系统权限 | 对象权限 |
---|---|
用户对数据库的相关权限 | 用户对其他用户的数据对象操作的权限 |
系统权限的授权
grant connet to 用户名;
对象权限的授权及收回权限
grant select on emp to 用户名;
--由scott进行授权
--希望用户可以查询scott的emp表
grant update on emp to 用户名;
--由scott进行授权
--授权用户可以修改scott的emp表
grant all on emp to 用户名;
--由scott进行授权
--授权用户可以去删除、查询、添加scott的emp表
revoke select on emp from 用户名;
--由scott收回权限
授权成功后,该用户的查询方式
select * from scott.emp;
对权限的维护
grant select on emp to 用户名1 with grant option;
--由scott进行授权
--授权用户1可以将此权限给其他用户
如果是对象权限,就加入 with grant option
如果是系统权限,就加入 with admin option
使用profile管理用户口令
是口令限制、资源限制的命令集合
当建立数据库时,oracle会自动建立名称为default的profile
当建立用户没有指定profile选项,那oracle就会将default分配给用户
账户锁定
指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)
一般用dba的身份去执行该命令
--e.g.指定tea这个用户最多只能尝试3次登陆,锁定时间为2天
--创建profile文件规则
create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
--给用户tea限制规则
alter user tea profile lock_account;
给账户(用户)解锁
dba用户操作
alter user tea account unlock;
终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成
同样这个命令也需要dba身份操作
--e.g.给用户tea创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天
--创建profile文件规则
create profile myprofile limit password_life_time 10password_grace_time 2;
--给用户tea限制规则
alter user tea profile myprofile;
口令历史
如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中
当用户修改密码—与新旧密码进行比较—如一致,提示用户重新输入密码
--创建profile文件规则
create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;
--password_reuse_time 10为指定口令可重用时间(即10天后就可以重用)
--给用户tea限制规则
alter user tea profile password_history;
删除profile
drop profile 规则名称;