oracle数据库

创建表空间

永久表空间

表空间是数据逻辑的划分,一个表空间只能属于一个数据库,
所有数据库对象都存放在表空间中,但主要存放的是表,数据存放在表,表存放在表空间

临时表空间

Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间

语句
1、创建表空间需要sys或system账号
SQL> sqlplus / as sysdba

2、查询用户表空间文件的路径,然后在此目录下创建新的表空间
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/orcl/system01.dbf
/opt/oracle/oradata/orcl/sysaux01.dbf
/opt/oracle/oradata/orcl/undotbs01.dbf
/opt/oracle/oradata/orcl/users01.dbf

3、创建永久表空间
SQL> create tablespace testper logging  datafile '/opt/oracle/oradata/orcl/testper.dbf' size 100m autoextend on next 100m maxsize 500m extent management local;

Tablespace created.

4、创建临时表空间
查询临时表空间文件的路径,然后在此目录下创建临时表空间
SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/orcl/temp01.dbf

SQL> create temporary tablespace testtem tempfile '/opt/oracle/oradata/orcl/testtem.dbf' size 100m autoextend on next 100m maxsize 500m extent management local;

Tablespace created.
解析
--创建表空间语句
create tablespace test                                      --表空间名字
logging      --默认的参数,是否生成创建日志  nologging不生成可加快创建速度,该属性针对 undo 和 temporary 表空间不启作用
datafile 'D:\dev-software\Oracle\oradata\ORCL\element_hn.dbf'  --物理文件名及路径
size 100m                                                    --表空间大小
autoextend on                                                  --自动增长
next 100m                                                     --每次扩展大小
maxsize 500m                                                 --最大大小
extent management local;   --本地管理表空间是通过位图管理的,这是最重要的子句,说明了表空间如何管理范围。

创建用户

语句

SQL> create user test3 identified by 123456 default tablespace testper temporary tablespace temp;

User created.

SQL> alter user 用户名 identified by 新密码; 

授权

在oracle的数据库中权限分为三类

  • 对象权限(Object privileges)

    对象权限是指指定的表,试图,序列上制定执行动作的权限

  • 角色权限(Role privileges)

    角色是可以授予用户相关权限的组,该方法使权限的授予,撤回更加容易

    常见的三种角色

    connect role(连接角色)
    ​ --临时用户,特指不需要建表的用户,通常只赋予他们connect role.
    ​ --connect是使用oracle的create session简单权限

    resource role(资源角色)
    –更可靠和正式的数据库用户可以授予resource role。该角色不包含connect的连接权限
    –resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

    dba role(数据库管理员角色)
    –dba role拥有所有的系统权限
    –包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有

  • 系统权限(System privileges)

    为用户分配创建表(create table)、创建用户(create user)、创建视图(create view)、创建存储过程(create procedure),无限制使用表空间(unlimited tablespace)等权限
    注意:无限制使用表空间(unlimited tablespace)权限无法授予角色,只能授予给用户!

命令

授予角色权限
SQL> create role test7;      
Role created.
SQL> grant create session,create table to test7;
Grant succeeded.

授予用户角色权限
SQL> grant connect,resource to test2;
Grant succeeded.
SQL> grant dba to test3;
Grant succeeded.

撤销权限
SQL> revoke connect from test2;
Revoke succeeded.

sys用户下
//查询所有用户
SQL> SELECT * FROM ALL_USERS;
SQL> SELECT * FROM ALL_USERS;

USERNAME                          USER_ID CREATED
------------------------------ ---------- ---------
。。。
SUDY_EOS                               85 15-FEB-23

//查询用户下的所有表
SQL> select * from all_tables where owner='用户名';

//删除表
SQL> drop table 表名;
查询用户的角色权限 区分大小写
SQL> select * from dba_role_privs where grantee='TEST2';

GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
TEST2                          CONNECT                        NO  YES
TEST2                          RESOURCE                       NO  YES

查询用户的系统权限
SQL> select * from dba_sys_privs where grantee='TEST2';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
TEST2                          UNLIMITED TABLESPACE                     NO

查看某个角色所拥有的权限
SQL> select * from dba_sys_privs where grantee='CONNECT';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
CONNECT                        CREATE SESSION                           NO


当前用户下
SQL> select * from session_privs; --当前用户所拥有的全部权限
SQL> select * from user_sys_privs;--当前用户的系统权限
SQL> select * from user_tab_privs;--当前用户的对象权限
SQL> select * from role_sys_privs;--当前用户的角色权限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值