Oracle用户管理创建用户概述:在oracle中要创建一个新的用户使用createuser语句,一般是具有dba(数据库管理员)的权限才能使用。createuser用户名identifiedby密码;
PS:oracle密码必须以字母开头,否则会创建失败)
扩展:
sql> create user switch identified by 123456default tablespace userstemporary tablespace tempquota 3m on users;identified by 表明用户switch将用数据库方式验证 default tablespace users //用户的表空间在users上temporary tablespace temp //用户的临时表在temp 空间quota 3m on users //表明用户建立的数据对象(表,索引,视图,pl/sql块..)最大只能是3m刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权.
用户可以连接上数据库
sql>grantconnecttoswitch
用户建表没有空间的限制
sql>grandresourcetoswitch
用户成为dba
sql>grantdbatoswitch
用户修改密码概述:
如果给自己修改密码可以使用password用户名如果给别人修改密码则需要具有dba的权限,或是拥有alteruser的系统权限SQL>alteruser用户名identifiedby新密码
删除用户概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有dropuser的权限。比如dropuser用户名[cascade]在删除用户时,注意:如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;
用户权限管理概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。基本语法:grant权限/角色to用户
举例:
SQL> conn xiaoming/123456; ERROR: ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。 SQL> show user; USER 为 "" SQL> conn system/123456; 已连接。 SQL> grant connect to xiaoming; 授权成功。 SQL> conn xiaoming/123456; 已连接。 SQL>
PS:SQL>grantconnecttoxiaoming;这里的connect是角色。当然我们也可以这样做,grantcreatesessiontoxiaoming;这样用户小明被赋予了创建会话的权限,也能连接上数据库实例。
扩展:
Oracle的权限分为系统权限和对象权限,createsession就是一个系统权限select,insert之类的就是对象权限。总结起来就是:系统权限是用户对数据库系统的相关权限,对象权限就是用户对其他用户的数据对象操作的权限。
其在命令上就能清晰的看出,以下举例:
系统权限:grantsessiontoxiaoming; –将建立会话的权限赋给用户
对象权限:grantselectonscott.emptoxiaoming; –将查询scott用户下的emp表的权限赋给用户
可以明显的看出系统权限是…to…,而对象权限是…on…to…,从这语法也就证明了上述的总结。
Oracle的角色分为预定义角色和自定义角色,常见的预定义角色有connect,resource,dba
connect角色:可以连接上数据库进行基本操作。
resource角色:在connect角色的基础上可以在任何表空间建表。
dba角色:拥有数据库管理员的权限。PS:在scott用户登录的情况如下操作,如果是以其他用户登录赋权要加用户名scott。*希望xiaoming用户可以去查询scott的emp表grantselectonemptoxiaoming*希望xiaoming用户可以去修改scott的emp表grantupdateonemptoxiaoming*希望xiaoming用户可以去修改/删除,查询,添加scott的emp表grantallonemptoxiaoming*scott希望收回xiaoming对emp表的查询权限revokeselectonempfromxiaoming*希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限继续给别人。–如果是对象权限,就加入withgrantoptiongrantselectonemptoxiaomingwithgrantoption
SQL> conn scott/123456; 已连接。 SQL> grant select on scott.emp to xiaoming with grant option; 授权成功。 SQL> conn system/123456; 已连接。 SQL> create user xiaohong identified by 123456; 用户已创建。 SQL> grant connect to xiaohong; 授权成功。 SQL> conn xiaoming/123456; 已连接。 SQL> grant select on scott.emp to xiaohong; 授权成功。 黑夜下,撕开那张面具尽是怠倦的容颜,