数据库安装好了之后,一般不使用默认的系统用户的表空间,而是自己单独创建一个表空间和数据文件,但是尽量不要多个项目使用同一个表空间,这样数据存储可能会变的混乱,创建独立的表空间可以使不同项目的数据分开存储,这样可以更好地管理数据,后期方便数据库备份和还原
小流程
-- 新建用户
CREATE USER 用户名 IDENTIFIED BY 密码;
-- 给用户 用户名 赋予角色(这里直接是系统角色,如果想要其他角色也可以自己加)
GRANT DBA TO 用户名;
-- 创建表空间和表空间里的数据文件
CREATE TABLESPACE 表空间名字 -- 表空间名字 表空间名字
DATAFILE '文件路径\文件名.DBF' SIZE 1024M --如D:\Oracle19c\表空间名字\用户名.DBF 1024M 数据文件的初始大小
AUTOEXTEND ON NEXT 1024M -- 启用自动扩展特性 1024M 数据文件在需要扩展时增加的大小
MAXSIZE 20480M -- 20,480M 数据文件可以自动扩展到的最大尺寸
LOGGING; -- 日志记录选项,用于决定是否在数据库的重做日志中记录对表空间中数据的更改。
-- 给用户指定默认表空间(就是以后数据就存储在这里面)
ALTER USER 用户名 DEFAULT TABLESPACE 表空间名字;
表空间建好之后,可以在对应的目录下看到一个数据库文件
可以建个表进行校验,查一下下面的信息是否对应
-- 查看所有用户
select * from dba_users;
-- 查看所有角色
SELECT * FROM dba_roles;
-- 查看当前用户
SELECT USER FROM DUAL;
-- 查看所有表空间
SELECT
TABLESPACE_NAME,
FILE_NAME,
BYTES,
AUTOEXTENSIBLE
FROM
DBA_DATA_FILES;
-- 建表查表一条龙
DROP TABLE 用户名.TEST;
CREATE TABLE 用户名.TEST(NAME VARCHAR(32));
INSERT INTO 用户名.TEST (NAME) VALUES ('测试表');
SELECT * FROM 用户名.TEST;
-- 查看用户有哪些表空间
SELECT table_name, tablespace_name
FROM dba_tables
WHERE owner = '用户名';
-- 查看用户默认的表空间
SELECT default_tablespace FROM dba_users WHERE username = '用户名';
-- 查看表空间的归属人(前提要有数据才能查到,如先建个表)
SELECT DISTINCT owner
FROM dba_tables
WHERE tablespace_name = '表空间名字';
-- 查看表 TEST 属于哪个表空间
SELECT table_name, tablespace_name
FROM all_tables
WHERE table_name = 'TEST'
AND owner = '用户名';
-- 查看一个表空间中的所有数据文件及其路径和大小
SELECT tablespace_name, file_name, bytes / 1024 / 1024 AS size_mb
FROM dba_data_files
WHERE tablespace_name = '表空间名字';
角色的相关操作
-- 创建角色
CREATE ROLE 角色名;
-- 给角色赋权
GRANT 权限 TO 角色名;
-- 如赋予系统权限
GRANT system_privilege TO 角色名;
-- 如赋予对象权限,给角色在某一个表的查询、插入权限
GRANT SELECT, INSERT ON 表名 TO 角色名;
-- 撤销角色权限
REVOKE 权限 FROM 角色名;
-- 撤销对象权限,给角色在某一个表的查询、插入权限
REVOKE 权限名 ON 表名 FROM 角色名;
表空间的一些操作
-- 修改用户默认的表空间
ALTER USER 用户名 DEFAULT TABLESPACE 新表空间名字;
-- 删除表空间
DROP TABLESPACE 表空间名字 INCLUDING CONTENTS AND DATAFILES;
-- 修改表空间存储位置
--1、添加新数据文件(大小看自己需求)
ALTER TABLESPACE 表空间名 ADD DATAFILE '/新文件路径/新文件名.dbf' SIZE 1024M;
--2、移动数据文件
ALTER DATABASE RENAME FILE '/旧文件路径/旧文件名.dbf' TO '/新文件路径/新文件名.dbf';
--3、删除原来表空间的数据文件
ALTER TABLESPACE 表空间 DROP DATAFILE '/旧文件路径/旧文件名.dbf';
结束...