1、创建角色
我们以往为数据库用户赋予角色权限:connect
resource
dba
。
这样做是不安全的。毕竟我们为所有用户都赋予了dba权限,有可能由于误操作而产生无法弥补的损失。
通过对数据库权限的梳理,我们可以按照如下方式添加一个数据库角色:developer
,该角色具有常用权限,且操作范围在用户自己对象内。
1.1、创建developer角色
执行以下SQL:
--创建角色 developer
create role developer;
--为角色developer赋予权限
--创建外部任务
grant CREATE EXTERNAL JOB to developer;
--创建任务
grant CREATE JOB to developer;
--连接数据库
grant CREATE SESSION to developer;
--创建视图
grant CREATE VIEW to developer;
--创建CLUSTER
grant CREATE CLUSTER to developer;
--创建INDEXTYPE
grant CREATE INDEXTYPE to developer;
--创建OPERATOR
grant CREATE OPERATOR to developer;
--创建存储过程
grant CREATE PROCEDURE to developer;
--创建序列
grant CREATE SEQUENCE to developer;
--创建TABLE
grant CREATE TABLE to developer;
--创建触发器
grant CREATE TRIGGER to developer;
--创建TYPE
grant CREATE TYPE to developer;
2、为用户授权
有了此角色,我们可以为用户授予此角色以完成授权。通过PLSQL DEVELOPER
,授权时选择角色权限,填写developer
即可(不再需要为其授予resources
connect
dba
角色权限),为了方便,我们还应该向用户赋予系统权限unlimited tablespace
。如果没有赋予unlimited tablespace
系统权限,且未向用户赋予任何tablespace
权限,会导致tablespace
权限不足问题。
若使用SQL语句授权,则执行以下SQL:
grant developer to 用户名;
grant unlimited tablespace to 用户名;