用户管理
1,创建用户:
create user 用户名 identified by 密码;
创建用户必须要具有dba的权限,而且创建了用户根本没有实际意义,必须要被赋予权限
2,删除用户:
drop user 用户名[ cascade]; 如果此用户创建了表,在删除用户的时候,需要带上cascade
3,修改用户密码:
修改本用户的密码: passw[ord] ;
修改其他的用户的密码:alter user 用户名 identified 密码;(这个密码不能以数字开头,必须以字母开头)
4,权限
权限分为:
·系统权限 (对数据库的相关操作):creat table , create dabase ...(这些都是些角色,角色就是具有一组已经分配好的权限)
·对象权限(对数据对象的相关操作):select , update , insert , delete , all(以上四种) ,create index
角色:角色就是为了简化权限的管理,具有一组权限的这样一个概念, connect , resource , dba 都是角色
·预定义角色
·自定义角色
1, 创建角色
create role role_name [not identified / identified by password_name] ;
2,给角色赋权限
grant 权限名字 to 角色名;
grant 权限名字 on 表名 to 角色
3,包角色赋给用户
grant 角色名字 to 用户名字
删除角色:drop role role_name;
对于系统权限,需要使用dba的角色来赋权限,但是对于对象权限,可以是dba角色,也可以是对于拥有此数据对象的用户来赋给其他的用户
如:把scott的emp表的select权限赋给hwt用户
SQL> grant select on emp to hwt ;
-----------------------------------
SQL> grant select on scott.emp to hwt;
如果要使赋权限的用户也可以赋权限给别的用户,那么在赋权限的时候加上[with grant option] , 如果是管理员的权限,就要加上[with admin option]
收权:
SQL> revoke select on emp from hwt ;
SQL> revoke select on scott.emp from hwt ;
oracle的收权是株连九族的,如system -- > hwt -- > xixi , 当sytem收回hwt的权限的话,xixi的权限也米有了
5,用户口令
·========设置用户登陆的错误次数和锁定的时间
SQL> create profile 配置文件的名字 limit failed_login_attempts 3 password_lock_time 2 ; -----锁定的时间单位是‘天’
SQL> alter user 用户名 profile 配置文件的名字; ---- 分配给某个用户
·========设置定时修改密码
SQL> create profile 配置文件的名字 limit password_life_time 10 password_grace_time 3 password_reuse_time 10 ; ------设置每隔十天要修改密码,可以延期3天,密码不能和上次的一样
SQL> alter user 用户名 profile 配置文件的名字; ----- 分配给某用户
·========删除配置
SQL> drop profile 配置文件的名字;