创建用户与默认表空间:CREATE USER app1 IDENTIFIED BY DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp_ts QUOTA 500M ON users PROFILE app_profile; 临时表空间用于排序/哈希,避免占用 SYSTEM;如未显式指定临时表空间,数据库会使用创建时指定的默认临时表空间或 SYSTEM(不推荐)。
授予对象权限与系统权限:按需授予,例如 GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO app1; 如需跨用户访问对象,授予对象权限:GRANT SELECT, INSERT, UPDATE, DELETE ON hr.employees TO app1; 撤销权限用 REVOKE。
角色与默认角色:创建自定义角色并授予最小必要权限,再授予用户;设置默认角色,使登录自动启用:CREATE ROLE app_role; GRANT CREATE SESSION, CREATE TABLE TO app_role; GRANT app_role TO app1; ALTER USER app1 DEFAULT ROLE app_role; 默认角色在 CREATE USER 时为 ALL,后续可用 ALTER USER 调整。
应用开发账号:CREATE USER app_dev IDENTIFIED BY DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp_ts QUOTA 1G ON users; GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE TO app_dev;
只读报表账号:CREATE USER rpt_ro IDENTIFIED BY DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp_ts; GRANT CREATE SESSION TO rpt_ro; GRANT SELECT ON hr.employees TO rpt_ro; GRANT SELECT ON oe.orders TO rpt_ro;(按需为更多表授予 SELECT)
应用专用账号(禁止直接登录):CREATE USER app_svc IDENTIFIED BY DEFAULT TABLESPACE app_ts TEMPORARY TABLESPACE temp_ts; GRANT CREATE SESSION TO app_svc;(仅授予应用所需对象权限,不授予 CREATE TABLE 等 DDL,避免人为误操作)