Linux环境下Oracle权限设置需结合系统配置与数据库操作,核心步骤如下:
创建用户与组
# 创建用户组
groupadd oinstall
groupadd dba
# 创建Oracle用户并加入组
useradd -g o install -G dba oracle
passwd oracle # 设置密码
修改系统参数
/etc/security/limits.conf,添加Oracle用户资源限制:oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/sysctl.conf,优化内核参数(如fs.file-max等),执行 sysctl -p 生效。创建用户并授权:
-- 创建用户(指定表空间)
CREATE USER test_user IDENTIFIED BY password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
-- 授予系统权限(如登录、建表)
GRANT CONNECT, RESOURCE TO test_user;
-- 授予对象权限(如操作表)
GRANT SELECT, INSERT, UPDATE ON schema.table TO test_user;
角色权限管理:
-- 创建角色并授予权限
CREATE ROLE hr_role;
GRANT CREATE TABLE, SELECT ON hr_table TO hr_role;
-- 将角色授予用户
GRANT hr_role TO test_user;
查看权限:
-- 查看用户系统权限
SELECT * FROM dba_sys_privs WHERE GRANTEE = 'TEST_USER';
-- 查看用户对象权限
SELECT * FROM user_tab_privs WHERE GRANTEE = 'TEST_USER';
回收权限:
-- 回收对象权限
REVOKE INSERT ON schema.table FROM test_user;
-- 回收角色权限
REVOKE hr_role FROM test_user;
DBA等高权限角色。ORACLE_HOME、PATH)正确设置,可通过修改.bash_profile实现。以上操作需以SYSDBA或具有相应权限的用户执行,操作前建议备份数据库。