目 录CONTENT

文章目录

Oracle数据库中创建数据库实例、表空间、用户、角色及授权的详细步骤

暮渔木鱼
2024-02-28 / 0 评论 / 0 点赞 / 17 阅读 / 0 字 / 正在检测是否收录...

以下是Oracle数据库中创建数据库实例、表空间、用户、角色及授权的详细步骤和语句说明:


1. 创建数据库实例

Oracle中通常使用DBCA工具创建数据库,手动创建语句较复杂(需SYSDBA权限):

CREATE DATABASE mydb
  USER SYS IDENTIFIED BY sys_password
  USER SYSTEM IDENTIFIED BY system_password
  LOGFILE GROUP 1 ('/u01/oradata/mydb/redo01.log') SIZE 100M,
          GROUP 2 ('/u01/oradata/mydb/redo02.log') SIZE 100M
  MAXLOGFILES 5
  MAXDATAFILES 100
  CHARACTER SET AL32UTF8
  NATIONAL CHARACTER SET AL16UTF16
  EXTENT MANAGEMENT LOCAL
  DATAFILE '/u01/oradata/mydb/system01.dbf' SIZE 500M;

2. 创建表空间

表空间用于存储用户数据:

-- 创建永久表空间
CREATE TABLESPACE mytablespace
DATAFILE '/opt/oracle/oradata/ORCL/mytablespace.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

-- 创建临时表空间(用于排序等操作)
CREATE TEMPORARY TABLESPACE mytemp
TEMPFILE '/opt/oracle/oradata/ORCL/mytemp.dbf'
SIZE 200M
AUTOEXTEND ON;

3. 创建用户

创建用户并关联表空间:

CREATE USER myuser IDENTIFIED BY mypassword
DEFAULT TABLESPACE mytablespace
TEMPORARY TABLESPACE mytemp
QUOTA UNLIMITED ON mytablespace;  -- 分配表空间配额

4. 创建角色

创建角色并分配权限:

CREATE ROLE myrole;  -- 创建角色

-- 为角色授权(系统权限)
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO myrole;

-- 为角色授权(对象权限,如访问某表的SELECT)
GRANT SELECT ON another_user.some_table TO myrole;

5. 将角色授予用户

GRANT myrole TO myuser;  -- 将角色赋予用户

-- 可选:直接授予额外权限
GRANT CONNECT, RESOURCE TO myuser;  -- 常用预定义角色

6. 验证授权

-- 查看用户权限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'MYUSER';
-- 查看角色权限
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'MYUSER';

关键概念说明

  • 表空间(Tablespace):逻辑存储单元,管理物理数据文件。
  • 用户(User):访问数据库的账户,需关联默认和临时表空间。
  • 角色(Role):权限集合,简化用户权限管理。
  • 权限类型
    • 系统权限:如 CREATE TABLECREATE SESSION
    • 对象权限:如 SELECT ON table_name

完整示例流程

-- 1. 创建表空间
CREATE TABLESPACE app_data 
DATAFILE '/u01/oradata/ORCL/app_data01.dbf' SIZE 1G AUTOEXTEND ON;

-- 2. 创建用户
CREATE USER app_user IDENTIFIED BY pass123
DEFAULT TABLESPACE app_data
TEMPORARY TABLESPACE temp;

-- 3. 创建角色并授权
CREATE ROLE app_developer;
GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE TO app_developer;

-- 4. 角色授予用户
GRANT app_developer TO app_user;

注意事项

  1. 执行操作需使用SYSDBA或具有足够权限的用户。
  2. 数据文件路径需确保Oracle进程有写入权限。
  3. 生产环境需规划表空间大小、备份策略等。

通过以上步骤,您可完成Oracle数据库的基础配置和权限管理。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区