用户管理

创建用户

       create user zhuopeng identified by zzz111 ;

显示当前用户

       show user ;

修改密码

       password zhuopeng ;

删除用户的时候,

       Drop user ;

注意: 如果删除的用户,已经创建了表,那么在删除的时候需要带一个参数。Casecade

授权

创建的用户是没有任何的权限的。

甚至都不能登录数据库。

如果希望可以登录数据库则需要另一个用户(system,sys)给他权限

grant connect to zhuopeng ;

Oracle有两种权限:系统权限(用户对数据库访问的权限)

                                          -crate session (会话)

                              对象权限(用户对其他用户的数据对象访问的权限)

(select , insert , update , all ,delete 。。。。。)

                                          -数据对象(表,视图,过程)

角色的概念:

       系统权限和对象权限很多。就如同权限的批量授权。

       角色分两种:

              -自定义角色

              -预定义角色

例如 dba,resource,connect 权限

下面希望,zhuopeng这个用户可以创建表

命令:

create table test(

       userid varchar2(30),

       username varchar2(30) ) ;

结果会显示没有权限

需要再次授权 见表的权限

命令:

grant resource to zhuopeng ;

然后就可以通过命令 desc test 查看表结构。

下面希望,zhuopeng这个用户可以查看scott下的emp这个表

这个时候就要再次给zhuopeng这个用户授权。

命令:

切换到scott用户下输入:

grant select on emp to zhuopeng ;

然后切换到zhuopeng用户下输入命令:

       Select * from scott.emp ;

Scott叫  方案

下面希望zhuopeng修改emp表格

命令:

       grant update on emp to zhuopeng ;

如果希望zhuopeng对emp表格进行各种操作的话

命令:

       Grant all on emp to zhuopeng ;

回收权限:

Scott 希望收回zhuopeng对emp表的查询权限。

Revoke select on emp from zhuopeng ;

权限的传递

       对权限的维护的工作。

希望zhuopeng用户可以查看scott的表格,还希望zhuopeng把这个权限继续给别人。

如果是对象权限就在后面加上with grant option ;

例如:

Grant select on emp to zhuopeng with grant option ;

       如果scott收回了zhuopeng 的访问权限,那么zhuopeng通过zhuopeng获得访问权限的用户都没有了访问的权限。

如果是系统权限就在后面加上with admin option;

例如:

Grant connect to zhuopeng with admin option ;

账户锁定

例子:指定用户zhuopeng最多三次尝试登陆,否则ban两天。

创建profile文件,这个规则就是写在这个文件中的,dba能做。

Sql> create profile lock_account(文件名字) limit failed_login_attempts 3 password_lock_time 2 ;

3代表登陆三次失败,2代表锁定两天。

然后用命令

Sql> alter user zhuopeng profile lock_account ;

解锁

Sql> alter user zhuopeng profile unlock ;

终止口令

让用户每隔10天让用户更改密码,宽限期为2天。

DBA必须要常常修改的。

Sql > create profile myprofile limit password_life_time 10 password_grace_time 2 ;

Sql > alter user system profile myprofile  ;

口令历史

不能在10天之内使用老密码

Sql > create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10 ;

Sql >删除

Drop profile password_history [cascade] ;

原文地址:https://www.cnblogs.com/da-peng/p/5257308.html