在Ubuntu中管理Oracle用户,主要涉及操作系统用户和数据库用户两方面,具体操作如下:
一、操作系统用户管理
-
创建用户并添加到指定组
sudo useradd -m -g oinstall -G dba oracle_user # 主组oinstall,附加组dba sudo passwd oracle_user # 设置密码oinstall:Oracle软件安装组,dba:数据库管理员组。
-
设置用户权限与资源限制
sudo visudo # 编辑sudoers文件,赋予用户执行特定命令的权限(如启动监听器) sudo chown -R oracle_user:oinstall /u01/app/oracle # 设置Oracle目录所属权
二、Oracle数据库用户管理
-
创建数据库用户
以sysdba身份登录数据库(需先切换到Oracle用户):su - oracle sqlplus / as sysdba CREATE USER new_user IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;- 可指定默认表空间、临时表空间及配额。
-
分配权限
- 系统权限(如创建会话、表):
GRANT CREATE SESSION, CREATE TABLE TO new_user; - 对象权限(如对特定表的操作):
GRANT SELECT, UPDATE ON schema.table TO new_user; - 角色管理:创建角色并批量授予权限,再赋予用户角色。
CREATE ROLE hr_role; GRANT SELECT ON employees TO hr_role; GRANT hr_role TO new_user;
- 系统权限(如创建会话、表):
-
撤销权限与删除用户
REVOKE SELECT ON schema.table FROM new_user; -- 撤销对象权限 DROP USER new_user CASCADE; -- 删除用户(级联删除其对象) -
查看用户权限
SELECT * FROM user_sys_privs; -- 系统权限 SELECT * FROM user_tab_privs; -- 对象权限 SELECT * FROM user_role_privs; -- 角色权限
三、认证方式配置
- 密码认证:创建用户时设置密码,默认方式。
- 操作系统认证:通过
/etc/oratab配置,允许操作系统用户直接登录数据库。 - 强认证:使用Kerberos/SSL等,需额外配置。
四、注意事项
- 操作需在
oracle用户下执行,或通过sudo获取权限。 - 遵循最小权限原则,仅授予必要权限,避免安全风险。
- 定期审计用户权限,删除冗余账户。
参考来源: