oracle 如何创建、删除用户并授予权限
oracle 如何创建用户
oracle数据库的权限:系统权限、对象权限。系统权限:可以让用户执行特定的命令集。例,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限:可以让用户能够对各个对象进行某些操作。例,delete权限允许用户删除表或视图的行, select权限允许用户通过select从表、视图、序列或者快照中查询信息。
1.创建用户
oracle内部有两个建好的用户:system和sys。用户可以直接登录到system用户来创建其他用户,system的权限比较大,有创建用户的权限。
密码随便输入:1234
connect as:SYSDBA ,要用到dba的权限
创建用户:
语法:create user 用户名 identified by 口令;
例子:create user test_user identified by 123456;
更改用户:
语法:alter user 用户名 identified by 口令;
例子:alter user test_user identified by 12345678;
使用新用户登录一下试试:
还没赋予权限,不能登录:
删除用户:
语法:drop user 用户;
例子:drop user test_user;
若用户拥有对象,则不能直接删除,否则将返回一个错误值;指定关键字cascade,可以删除用户下的所有对象后,再删除用户。
语法:drop user 用户 cascade;
例子:drop user test_user cascade;
select * from user$ a where a.name like'%TEST_USER%';
删除前:
删除后,查询不出test_user了:
2.授权角色
oralce提供三种标准角色:connect 、resource、dba
connect role(连接角色):
临时用户,特指不需要建表的用户,通常只赋予他们connect role;
connect是使用oracle的简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update/delete等;
拥有connect role的用户还能够创建表、视图、序列、簇、同义词、会话和其他数据的链接。
resource role(资源角色):
更可靠和正式的数据库用户可以授予resource role;
resource提供给用户另外的权限以创建他们自己的表、序列、过程、触发器、索引和簇。
dba role(数据库管理员角色):
dba拥有所有的权限;
包括无限的空间限额和给其他用户授予各种权限的能力,system是dba角色。
授权角色:
语法:grant connect, resource to 用户名;
例子:grant connect, resource to test_user;
删除角色:
语法:revoke connect,resource from 用户名;
例子:revoke connect,resource from test_user;
授权后可以登录进去了:
3.创建/授权/删除角色
除了前面讲的三种角色,connect 、resource和dba,用户还可以在oralce创建自己的role,用户创建的role,可以由表或系统权限或者两者的组合构成。
创建角色:
语法: create role 角色名;
例子: create role test_role;
All objects->Roles->test_role,这个路径可以看到:
授权角色:
语法: grant select on 表 to 角色;
例子: grant select on test_user.t_emp to test_role;
拥有角色test_role的用户,都有对test_user.t_emp表的select查询权限。
创建一个新用户test_user1 并授予它test_role角色权限:
test_user1用户就可以查询test_user的t_emp表了:
删除角色:
语法: drop role角色名;
例子:drop role test_role;
再次查询,就没有权限去查询了:
--新建日期 修改日期 版本 修改内容
--2020.05.06 2020.05.12 V1.0 修改创建/授权/删除角色