您的位置:首页 > 数据库 > Oracle

【Oracle】11gR2 创建表空间,用户及其基本查询

2020-07-30 16:21 1481 查看
第一步:创建表空间

一、创建两个数据库的文件(XXXX.dbf 【数据表空间】和XXXX_temp.dbf 【临时表空间】两个文件)

SQL> CREATE TABLESPACE XXXX LOGGING DATAFILE 'D:\oracle\oradata\orcl\XXXX.dbf'
SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;
表空间已创建。
create temporary tablespace XXXX_temp tempfile 'D:\oracle\oradata\orcl\XXXX_temp.dbf'
size 100m autoextend on next 32m maxsize 500m extent management local;

将XXXX改为你项目数据库的名称
这里’D:\oracle\oradata\orcl’是你Oracle安装根目录的数据文件(实例存放位置)
若是在linux系统中则改为相应的目录 如: /u01/db/oracle/

第二步、创建用户与上面创建的文件形成映射关系(用户名为XXXX,密码为XXXX)
SQL> CREATE USER XXXX IDENTIFIED BY XXXX
DEFAULT TABLESPACE XXXX TEMPORARY TABLESPACE XXXX_temp;

oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。

第三步、添加权限
grant connect,resource,dba to XXXX;

撤销授权:

语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;

connect、resource和dba三种标准角色权限说明–> 添加链接描述

1)讲解三种标准角色:
1》. connect role(连接角色)
–临时用户,特指不需要建表的用户,通常只赋予他们connect role.
–connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
–拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
2》. resource role(资源角色)
–更可靠和正式的数据库用户可以授予resource role。
–resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》. dba role(数据库管理员角色)
–dba role拥有所有的系统权限
–包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有

四:删除数据库

有时候也会用到删除数据表空间和删除用户的操作,这里也给出删除的语句
删除表空间:

--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除空的表空间,包含物理文件
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

删除用户:

drop user XXXX cascade;

修改用户密码

语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;

五、创建/授权/删除角色

除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
1》创建角色
语法: create role 角色名;
例子: create role testRole;
2》授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
3》删除角色
语法: drop role 角色名;
例子: drop role testRole;
*-------------------------------------分割线----------------------------------- *

其他查詢:

1查询实例

select name from v$database;
select instance_name from v$instance;
show parameter instance_name

2查询表空间

SQL> select tablespace_name  from user_tablespaces ;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE

3查询oracle server端的字符集

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

4如何查询dmp文件的字符集

SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;

NLS_CHARSET_NAME(TO_NUMBER('0354','XXXX'
----------------------------------------
ZHS16GBK

—5 查询当前默认的表空间

SQL> SELECT PROPERTY_VALUE
FROM database_properties
WHERE PROPERTY_NAME ='DEFAULT_PERMANENT_TABLESPACE';

PROPERTY_VALUE
--------------------------------------------------------------------------------
USERS

6、查看拥有dba权限的所以用户

select * from dba_role_privs where granted_role='DBA';

7 其他

select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users;  查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !

--------------------------------------------------------完-------------------------------------------------------------
感谢您的阅读!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐