plsql创建新用户及权限配置

目录

plsql中创建新用户有两种方式:

1.1创建用户并通过sql相关语句授予权限

1.2删除用户

1.3撤销用户权限

1.4查看用户权限

2.1创建【角色】并将角色赋给创建的用户

什么是角色:

dba角色:

2.2删除用户:同上

2.3创建角色\并给角色赋予权限:

2.4删除角色\撤销角色权限:

2.5查看用户权限:同上

总结:


plsql中创建新用户有两种方式:

创建用户并通过sql相关语句授权

创建角色,并将角色赋给创建的用户

1.1创建用户并通过sql相关语句授予权限

-- 创建用户 user_custom 并设置密码
CREATE USER user_custom IDENTIFIED BY user_custom_password;

-- 授予基本系统权限
GRANT CREATE SESSION TO user_custom;        -- 允许用户登录数据库
GRANT CREATE TABLE TO user_custom;          -- 允许用户创建表
GRANT DROP TABLE TO user_custom;            -- 允许用户删除表
GRANT CREATE VIEW TO user_custom;           -- 允许用户创建视图
GRANT CREATE PROCEDURE TO user_custom;      -- 允许用户创建存储过程
GRANT ALTER ANY TABLE TO user_custom;       -- 允许用户修改任意表
GRANT SELECT ANY TABLE TO user_custom;      -- 允许用户查询任意表
GRANT INSERT ANY TABLE TO user_custom;      -- 允许用户插入数据到任意表
GRANT UPDATE ANY TABLE TO user_custom;      -- 允许用户更新任意表的数据
GRANT DELETE ANY TABLE TO user_custom;      -- 允许用户删除任意表的数据
GRANT EXECUTE ANY PROCEDURE TO user_custom; -- 允许用户执行任意存储过程

-- 可选:授予表空间使用权限
GRANT UNLIMITED TABLESPACE TO user_custom;

1.2删除用户

-- 如果用户没有拥有对象,可以直接删除用户
DROP USER user_custom;

-- 如果用户拥有数据库对象(如表、视图等),使用 CASCADE 删除用户及其对象
DROP USER user_custom CASCADE;

1.3撤销用户权限

-- 撤销用户登录数据库的权限
REVOKE CREATE SESSION FROM user_custom;

-- 撤销用户创建表的权限
REVOKE CREATE TABLE FROM user_custom;

-- 撤销用户删除表的权限
REVOKE DROP TABLE FROM user_custom;

-- 撤销用户创建视图的权限
REVOKE CREATE VIEW FROM user_custom;

-- 撤销用户创建存储过程的权限
REVOKE CREATE PROCEDURE FROM user_custom;

-- 撤销用户修改任意表的权限
REVOKE ALTER ANY TABLE FROM user_custom;

-- 撤销用户查询任意表的权限
REVOKE SELECT ANY TABLE FROM user_custom;

-- 撤销用户插入任意表数据的权限
REVOKE INSERT ANY TABLE FROM user_custom;

-- 撤销用户更新任意表数据的权限
REVOKE UPDATE ANY TABLE FROM user_custom;

-- 撤销用户删除任意表数据的权限
REVOKE DELETE ANY TABLE FROM user_custom;

-- 撤销用户执行任意存储过程的权限
REVOKE EXECUTE ANY PROCEDURE FROM user_custom;

--撤销用户的 CONNECT 权限(即登录数据库的权限)
REVOKE CONNECT FROM user_custom;


-- 可选:撤销表空间使用权限
REVOKE UNLIMITED TABLESPACE FROM user_custom;

1.4查看用户权限

-- 查看用户的系统权限
SELECT * FROM DBA_SYS_PRIVS WHERE grantee = UPPER('user_custom');

-- 查看用户的角色权限
SELECT * FROM DBA_ROLE_PRIVS WHERE grantee = UPPER('user_custom');

-- 查看用户的对象权限(如表、视图等)
SELECT * FROM DBA_TAB_PRIVS WHERE grantee = UPPER('user_custom');

2.1创建【角色】并将角色赋给创建的用户

什么是角色:

角色是一组权限的集合,它被用来简化权限管理。

例如:当需要创建使用相同权限的多个用户时,为简化操作,可以先创建一个角色,将权限赋给角色,再将角色赋给不同的用户

dba角色

是一个超级用户角色,它包含了几乎所有的系统权限,包括但不限于以下权限:

  • 用户管理:创建、修改和删除用户,分配或撤销权限。
  • 数据库对象管理:创建、修改、删除数据库中的表、视图、索引、存储过程等对象。
  • 系统管理:管理数据库实例、启动和关闭数据库、备份和恢复数据库。
  • 表空间管理:创建、修改和删除表空间,以及分配表空间配额给用户。
  • 执行 SQL 语句:执行所有类型的 SQL 操作,包括查询、插入、更新、删除等。
-- 创建用户 user_dba 并设置密码
CREATE USER user_dba IDENTIFIED BY user_dba_password;

-- 授予 DBA 角色,赋予用户所有权限
GRANT DBA TO user_dba;

-- 可选:授予表空间使用权限(防止表空间配额限制)
GRANT UNLIMITED TABLESPACE TO user_dba;

2.2删除用户:同上

2.3创建角色\并给角色赋予权限:

-- 创建一个名为 "admin_role" 的角色
CREATE ROLE admin_role;

-- 授予角色基本系统权限和对象权限
GRANT CREATE SESSION, CREATE TABLE, DROP TABLE TO admin_role;

-- 授予角色创建表的权限
GRANT CREATE TABLE TO developer_role;

-- 授予角色插入任意表的权限
GRANT INSERT ANY TABLE TO developer_role;

-- 授予角色查询任意表的权限
GRANT SELECT ANY TABLE TO developer_role;


-- 授予角色高级权限,例如 "DBA"
GRANT DBA TO admin_role;

2.4删除角色\撤销角色权限:

-- 删除 "admin_role" 角色
DROP ROLE admin_role;  
-- 从角色中撤销创建表的权限
REVOKE CREATE TABLE FROM developer_role;

2.5查看用户权限:同上

总结:

  • 方式 1:直接授予用户权限:适合单个用户或者需要为每个用户单独配置权限的场景。
  • 方式 2:通过角色管理权限:适合有多个用户共享相同权限的场景,通过角色简化权限管理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值