Oracle 用户管理
1、创建新用户
概述:在Oracle中药创建一个新的用户使用createuser语句,一般是具有DBA(数据库管理员)的权限才能使用。
命令:sql>create user 用户名 identified by 密码
案例:sql>create user kevin identified by m123
说明:创建了一个名为kevin的用户,密码是m123。
2、给用户修改密码
概述:如果给自己修改密码可以直接使用sql>password 用户名。如果给别人修改密码则需要具有DBA的权限,或是拥有alteruser的系统权限
命令:sql>alter user 用户名 identified by 密码
案例:sql>alter user kevin identified by m456
说明:修改用户名为kevin的用户的密码为m456。
3、删除用户
概述:一般以DBA的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user的权限。
命令:sql>drop user 用户名[cascade]
案例:sql>drop user kevin
说明:删除用户名为Kevin的用户,如果改用户在数据库有创建表,必须带上参数cascade。
4、给用户授权
概述:给一个用户赋权限使用命令grant。如果要将该权限的权限分配权传递下去的话,需要跟上with admin option。
命令:sql>grant 权限 to 用户名
案例:sql>grant create session to kevin
说明:将create session权限赋予用户kevin。
5、回收权限
概述:回收权限使用命令revoke。
命令:sql>revoke 权限from 用户名
案例:sql>revoke create user from kevin
说明:回收kevin的create session权限。
6、给用户赋予角色
概述:给一个用户赋角色使用命令grant。如果要将该权限的权限分配权传递下去的话,需要跟上with admin option。
命令:sql>grant 角色 to 用户名
案例:sql>grant connect to kevin
说明:将connect角色赋予用户kevin。
7、回收角色
概述:回收角色使用命令revoke。
命令:sql>revoke 角色from 用户名
案例:sql>revoke connect from kevin
说明:回收用户kevin的connect角色。
8、给用户赋予对象权限
概述:如果要将分配此权限的权限传递下去的话,需要跟上with grant option。
命令:sql>grant 权限 on 数据对象 to 用户名 [with grant option]
案例:sql>grant select on emp to kevin
说明:将对emp表的查询权限赋予用户kevin。
9、回收对象权限
概述:如果收回了直接授权者的权限,那么该直接授权者所传递下去的授权一并收回。
命令:sql>revoke 权限 on 数据对象 from 用户名
案例:sql>revoke all on emp from kevin
说明:回收用户Kevin对emp表的所有权限。
10、使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,Oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那Oracle就会将default分配给用户。
(1)帐户锁定
概述:指定该账户(用户)登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般DBA的身份去执行该命令。
案例:sql>create profile lock_account limit failed_login_attempts 3password_lock_time 2;
sql>alter user tea profilelock_account;
说明:指定tea这个用户最多只能尝试3次登录,锁定时间为2天。
(2)给帐户(用户)解锁
案例:sql>alter user tea account unlock;
说明:给tea这个用户进行帐户解锁。
(3)终止口令
概述:为了让用户定期修改密码可以使用终止口令的指令来完成。同样这个命令需要DBA身份的用户来操作。
案例:sql>create profile myprofile limit password_life_time 10password_grace_time 2;
sql>alter user tea profilemyprofilel
说明:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登录密码,宽限期为2天。
(4)口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样Oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,Oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
案例:sql>create profile password_history limit password_life_time 10password_grace_time 2 password_reuse_time 10;
sql>alter user tea profilepassword_history;
说明:要求签名创建的用户tea,输入的密码在10天内不能重复。
(5)删除profile
概述:当不需要某个profile文件时,可以删除该文件
命令:drop profile profile名称 [cascade]
案例:drop profile password_history;
说明:删除名为 password_history的profile。