oracle:创建表空间、用户和授权

文章目录


oracle:创建表空间、用户和授权

一、连接到 Oracle 数据库

sql 复制代码
-- 方式1:使用 SQL*Plus 命令行
sqlplus / as sysdba

-- 方式2:指定用户名密码
sqlplus sys/您的密码 as sysdba

-- 方式3:如果是远程连接
sqlplus sys/您的密码@//主机名:端口/服务名 as sysdba

二、查询现有的表空间的数据文件位置

sql 复制代码
--查询现有的表空间的数据文件位置
SELECT file_name, tablespace_name FROM dba_data_files;

三、创建表空间

1.创建新的表空间

sql 复制代码
-- 创建表空间,表空间名称为tc_test_data
CREATE TABLESPACE tc_test_data
-- 定义表空间的数据文件,文件路径为'D:\app\xxx\oradata\orcl\TEST_DATA01.DBF'
DATAFILE 'D:\app\xxx\oradata\orcl\TEST_DATA01.DBF' 
-- 设置数据文件的初始大小为100M
SIZE 100M 
-- 开启数据文件自动扩展功能
AUTOEXTEND ON 
-- 当数据文件需要扩展时,每次扩展的大小为10M
NEXT 10M 
-- 设置数据文件的最大大小为500M,达到此大小后不再自动扩展
MAXSIZE 500M;

2.创建索引表空间(可选,用于将索引与数据分开)

sql 复制代码
-- 创建索引表空间(可选,用于将索引与数据分开)
CREATE TABLESPACE tc_test_index
DATAFILE 'D:\app\xxx\oradata\orcl\TEST_INDEX01.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 5M
MAXSIZE 200M;

四、创建用户

可以直接使用 SYSTEM 用户创建表,但强烈不建议这样做!

sql 复制代码
-- 创建用户并指定默认表空间
-- 创建用户,用户名为myapp_user
CREATE USER myapp_user 
-- 指定用户密码为your_password_here
IDENTIFIED BY your_password_here 
-- 为用户指定默认表空间为myapp_data,用户创建的对象默认存放在此表空间
DEFAULT TABLESPACE myapp_data 
-- 为用户指定临时表空间为temp,用于存放临时段
TEMPORARY TABLESPACE temp 
-- 为用户在myapp_data表空间上分配无限制的使用定额,即用户在此表空间可使用全部可用空间
QUOTA UNLIMITED ON myapp_data 
-- 如果有索引表空间,为用户在myapp_idx表空间上分配50M的使用定额,限制用户在此表空间可使用的空间大小为50M
QUOTA 50M ON myapp_idx;  

若已经存在用户,可删除

sql 复制代码
select username from dba_users where username = '用户名';
drop user TEST cascade; -- cascade表示级联删除该用户相关的所有对象

五、查看创建的用户

sql 复制代码
-- 查看创建的用户
SELECT username, account_status, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username = 'MYAPP_USER';

六、授予权限

sql 复制代码
-- 授予app_user用户创建会话的权限,允许该用户连接到数据库
GRANT CREATE SESSION TO app_user;
-- 授予app_user用户创建表的权限,使其能够在数据库中创建新的表
GRANT CREATE TABLE TO app_user;
-- 授予app_user用户创建视图的权限,可创建用于查询特定数据的虚拟表
GRANT CREATE VIEW TO app_user;
-- 授予app_user用户创建序列的权限,序列常用于生成唯一的数值
GRANT CREATE SEQUENCE TO app_user;
-- 授予app_user用户创建存储过程的权限,存储过程是一组预编译的SQL语句
GRANT CREATE PROCEDURE TO app_user;
-- 授予app_user用户创建触发器的权限,触发器可在特定数据库事件发生时自动执行
GRANT CREATE TRIGGER TO app_user;

七、查看用户的权限

sql 复制代码
-- 查看用户的权限
SELECT * FROM dba_sys_privs WHERE grantee = 'MYAPP_USER';

八、创建表和插入测试数据

sql 复制代码
CREATE TABLE test (
    id NUMBER PRIMARY KEY,
    data_content VARCHAR2(100),
    created_time DATE DEFAULT SYSDATE
);

INSERT INTO test (id, data_content) VALUES (1, '测试')
相关推荐
xxwl5856 小时前
MySQL 基础学习笔记
数据库·mysql
SKH.7 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库
Rain的Java大神之路7 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
闻哥7 小时前
小表驱动大表——SQL查询优化的核心原则(深度剖析+流程图)
数据库·sql·流程图
cmes_love7 小时前
港股Level2历史数据:逐笔成交与分钟线
数据库·oracle
自由能燃气设备7 小时前
燃气热水锅炉/全预混低氮冷凝锅炉哪个品牌好?哪家好?6大商用品牌横评
大数据·数据库·人工智能
智购科技智能售货柜7 小时前
2026自动售货机设备能耗计量系统:从功率监测到能效分析的工程实践~YH
数据库·人工智能·redis·缓存·架构·perl·symfony
云贝贝贝7 小时前
PostgreSQL 生产环境备份恢复与高可用实战
数据库·postgresql
程序员-Benothing8 小时前
MySQL 中的 MVCC 是什么?如果没有 MVCC,会有什么影响?
数据库·mysql
Zenova EdgeOS8 小时前
工业网关心跳机制:从 Keepalive 到健康判定的工程实战
大数据·网络·数据库·边缘计算·工业网关