### Oracle建表建用户知识点详解 #### 创建表空间 在Oracle数据库中,表空间是物理存储的逻辑容器,用于组织数据库中的数据。每个数据库至少包含一个表空间,默认为`SYSTEM`表空间。创建表空间的基本语法如下: ```sql CREATE TABLESPACE 表空间名称 DATAFILE '文件路径' SIZE 表空间大小 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ``` 例如,创建名为`zjjtest`的表空间,指定其数据文件存储位置为`D:\oracle\ora92\network\admin\zjjtest.ora`,初始大小为50M,并采用本地管理方式以及自动段空间管理方式: ```sql CREATE TABLESPACE "zjjtest" DATAFILE 'D:\oracle\ora92\network\admin\zjjtest.ora' SIZE 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; ``` #### 追加表空间 为了扩展现有表空间的容量,可以使用`ALTER DATABASE`语句添加新的数据文件或扩展已有数据文件的大小。具体命令如下: ```sql ALTER DATABASE DATAFILE '数据文件路径' AUTOEXTEND ON NEXT 扩展量; ``` 例如,对于上面创建的`zjjtest`表空间,可以使用以下命令将其数据文件的自动扩展功能打开,并指定每次扩展1M的空间: ```sql ALTER DATABASE DATAFILE 'D:\oracle\ora92\network\admin\zjjtest.ora' AUTOEXTEND ON NEXT 1M; ``` #### 创建临时表空间 临时表空间用于存储临时对象,如排序操作、临时表等。创建临时表空间的语法如下: ```sql CREATE TEMPORARY TABLESPACE 临时表空间名称 TEMPFILE '文件路径' SIZE 初始大小 AUTOEXTEND ON NEXT 扩展量 MAXSIZE 无限大小 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 块大小; ``` 例如,创建名为`zjjtest_temp`的临时表空间,指定其临时文件存储位置为`D:\oracle\ora92\network\admin\zjjtest_temp.ora`,初始大小为10M,每次扩展1M且最大大小不限制: ```sql CREATE TEMPORARY TABLESPACE "zjjtest_temp" TEMPFILE 'D:\oracle\ora92\network\admin\zjjtest_temp.ora' SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; ``` #### 创建用户 创建用户的语法如下: ```sql CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 默认表空间名称 TEMPORARY TABLESPACE 临时表空间名称 ACCOUNT UNLOCK; ``` 例如,创建用户名为`zjjtest`的用户,密码为`zjj123`,默认表空间为`zjjtest`,临时表空间为`zjjtest_temp`,账户解锁状态: ```sql CREATE USER zjjtest IDENTIFIED BY zjj123 DEFAULT TABLESPACE "zjjtest" TEMPORARY TABLESPACE "zjjtest_temp" ACCOUNT UNLOCK; ``` #### 删除用户 删除用户可以通过以下命令实现: ```sql DROP USER 用户名; ``` 例如,删除用户`zjjtest`: ```sql DROP USER zjjtest; ``` #### 授予一般权限 授予用户各种权限可以使用`GRANT`命令。常见的权限包括`CONNECT`(连接数据库)、`RESOURCE`(创建表等资源)等。此外,还可以授予特定的操作权限,如创建任何表、选择任何表等。 ```sql GRANT 权限列表 TO 用户名; ``` 例如,授予用户`zjjtest`一系列常用权限: ```sql GRANT CONNECT, RESOURCE, CREATE ANY TABLE, DROP ANY TABLE, CREATE SEQUENCE, SELECT ANY TABLE, CREATE ANY INDEX, DROP ANY INDEX, ALTER ANY TRIGGER, CREATE ANY TRIGGER, DROP ANY TRIGGER, ALTER ANY TYPE, CREATE ANY TYPE, DROP ANY TYPE, CREATE ANY VIEW, DROP ANY VIEW, CREATE ANY DIRECTORY, CREATE PROCEDURE, QUERY REWRITE, CREATE SESSION TO zjjtest; ``` #### 授予DBA权限 DBA权限是最高级别的权限,具有对数据库的所有控制权。授予DBA权限的语法如下: ```sql GRANT 权限 ON 对象 TO 用户名; ``` 例如,授予用户`zjjtest`对系统视图的一系列查询权限: ```sql GRANT SELECT ON SYS.V_$PROCESS TO zjjtest; GRANT SELECT ON SYS.V_$PARAMETER TO zjjtest; GRANT EXECUTE ON DBMS_LOCK TO zjjtest; GRANT SELECT ON SYS.V_$LOCK TO zjjtest; GRANT SELECT ON SYS.V_$SESSION TO zjjtest; GRANT SELECT ON SYS.V_$MYSTAT TO zjjtest; GRANT SELECT ON SYS.V_$SESSION_WAIT TO zjjtest; GRANT SELECT ON DBA_KGLLOCK TO zjjtest; GRANT SELECT ON SYS.V_$SQLTEXT TO zjjtest; GRANT SELECT ON SYS.SLOG$ TO zjjtest; GRANT ALTER SESSION TO zjjtest; GRANT SELECT ON DBA_UNDO_EXTENTS TO zjjtest; GRANT SELECT ON DBA_TABLESPACES TO zjjtest; GRANT SELECT ON DBA_FREE_SPACE TO zjjtest; GRANT SELECT ON DBA_DATA_FILES TO zjjtest; ``` #### 撤销权限 撤销权限使用`REVOKE`命令。撤销用户的一般权限和DBA权限的语法与`GRANT`类似,但使用`REVOKE`代替`GRANT`。 ```sql REVOKE 权限列表 FROM 用户名; ``` 例如,撤销用户`zjjtest`的一般权限: ```sql REVOKE CONNECT, RESOURCE, CREATE ANY TABLE, DROP ANY TABLE, CREATE SEQUENCE, SELECT ANY TABLE, CREATE ANY INDEX, DROP ANY INDEX, ALTER ANY TRIGGER, CREATE ANY TRIGGER, DROP ANY TRIGGER, ALTER ANY TYPE, CREATE ANY TYPE, DROP ANY TYPE, CREATE ANY VIEW, DROP ANY VIEW, CREATE ANY DIRECTORY, CREATE PROCEDURE, QUERY REWRITE, CREATE SESSION FROM zjjtest; ``` 撤销DBA权限同样使用`REVOKE`命令: ```sql REVOKE SELECT ON SYS.V_$PROCESS FROM zjjtest; REVOKE SELECT ON SYS.V_$PARAMETER FROM zjjtest; REVOKE EXECUTE ON DBMS_LOCK FROM zjjtest; REVOKE SELECT ON SYS.V_$LOCK FROM zjjtest; REVOKE SELECT ON SYS.V_$SESSION FROM zjjtest; REVOKE SELECT ON SYS.V_$MYSTAT FROM zjjtest; REVOKE SELECT ON SYS.V_$SESSION_WAIT FROM zjjtest; REVOKE SELECT ON DBA_KG ``` 通过以上步骤,我们可以详细了解如何在Oracle数据库中进行表空间的创建与管理、用户创建及权限管理等操作。这些知识对于数据库管理员来说是非常重要的基础技能。
create tablespace "zjjtest" logging datafile 'D:\oracle\ora92\network\admin\zjjtest.ora' size 50m extent management local segment space management auto;
追加表空间:
alter database datafile 'D:\oracle\ora92\network\admin\zjjtest.ora' autoextend on next 1m;
创建临时表空间:
create temporary tablespace "zjjtest_temp" tempfile 'D:\oracle\ora92\network\admin\zjjtest_temp.ora' size 10m autoextend on next 1m maxsize unlimited extent management local uniform size 1m;
创建用户:
CREATE USER zjjtest IDENTIFIED BY zjj123 DEFAULT TABLESPACE "zjjtest" TEMPORARY TABLESPACE "zjjtest_temp" ACCOUNT UNLOCK;
删除用户:
drop user zjjtest;
授予一般权限:
grant connect,resource,create any table,drop any table,create sequence, select any table, create any index, drop any index, alter any trigger, create any trigger, drop any trigger, alter any type, create any type, drop any type, create any view, drop any view, create any directory, create procedure, query rewrite, create session to zjjtest;
授予DBA权限:
grant select on sys.v_$process to zjjtest;
grant select on sys.v_$parameter to zjjtest;
grant execute on dbms_lock to zjjtest;
grant select on sys.v_$lock to zjjtest;
grant select on sys.v_$session to zjjtest;
grant select on sys.v_$mystat to zjjtest;
grant select on sys.v_$session_wait to zjjtest;
grant select on dba_kgllock to zjjtest;
grant select on sys.v_$sqltext to zjjtest;
grant select on sys.slog$ to zjjtest;
grant alter session to zjjtest;
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip