重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一)基本概念介绍
成都创新互联公司成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、app软件定制开发、移动网站建设、微信网站制作、软件开发、绵阳服务器托管等实行标准化操作,让客户可以直观的预知到从成都创新互联公司可以获得的服务效果。
在国内有一款自主知识产权关系型数据库(达梦),其基本原理及管理方式与Oracle及其相似,因此涉及到的主要基本概念及代表的意义也基本一样,所以这里不再骜述,请参考另一篇关于达梦数据库介绍的文章《DM(达梦)数据库简介》。
二)安装Oracle
不管是Windows安装还是Linux安装,网上有大量的安装配置教程,这里也不再细说。这篇博文主要关注数据库原理及基本使用,因此还是需要快速实例化一个Oracle数据库,这里简单介绍一下基于docker的安装配置。
a. 首先,确认已经安装配置好docker,如果没有,请参考《Centos 7.5安装Docker》安装配置;
b. 在Docker中获取Oracle镜像信息;
#docker search oracle //在列表中选择需要版本,如果需要数据持久化特性,建议选择sath89/oracle-xe-xxx类型版本
c. 启动docker实例;
#docker run -d -p 49160:22 -p 49161:1521 -v /hostfolder:/dockerfolder --name xe sauth89/oracle-xe-11g //以sauth89/oracle-xe-11g为例
1. -d参数表示后台运行容器;
2. -p参数做端口映射,将docker的22和1521端口分别映射到宿主机的49160和49161;
3. -v参数表示目录映射,其结果就是存在于dockerfolder目录的文件也会在宿主机相应目录存一份;
4. --name参数指定容器服务名;
d. 通过上面c步,就会创建一个Oracle数据库实例,默认连接信息如下:
hostname: localhost(即宿主机)
port: 49161
SID: xe
service name: xe
username: system
password: oracle
e. 图形化功能连接数据库
三)基本使用
I. 管理命令
a. 查询版本
select banner from sys.v_$version;
或
select * from v$version;
b. 查看数据库名(实例名)及状态
select name from v$database;
select status from v$instance;
c. 查看系统所有用户
select * from all_users;
d. 创建用户并赋予其链接数据库权限
create user username identified by passwd;
grant connect to username;
e. 删除用户
drop user username ;
f. 查看当前用户角色
select * from user_role_privs;
g. 查看表空间及使用情况
select * from v$tablespace; //查看系统所有表空间
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; //单位是M
h. 创建表空间
create tablespace test_tbsp datafile
'/home/oracle/oradata/test_tbsp.dbf'
size 100M;
//数据文件一定要单引号引起来
i. 查看用默认表空间
select username,default_tablespace from dba_users;
j. 修改用户默认表空间
alter user user1 default tablespace test_tbsp;
k. 开启表空间自动扩展、查看、关闭
alter database datafile '/home/oracle/oradata/test_tbsp.dbf' autoextend on; //开启
select file_name,autoextensible,increment_by from dba_data_files where tablespace_name='TEST_TBSP'; //查看
alter database datafile '/home/oracle/oradata/test_tbsp.dbf' autoextend off; //关闭
II. 角色、用户及权限管理
a. 创建角色
create role roleName;
b. 给角色授予权限
grant 权限 to roleName:
c. 将角色授予用户
grant roleName to userName;
d. 查询当前用户拥有角色
select * from user_role_privs;
e. 删除角色
drop role roleName;
关于角色注意:
1. 当给角色授予权限的时候,拥有此角色的用户也同时增加了权限;
2. 当撤销角色权限的时候,拥有此角色的用户的对应权限也被撤销;
3. 当角色被删除,拥有此角色的用户将丧失之前角色所有的所有权限。
f. 授予用户会话权限
grant create session to userName;
g. 授予用户建表权限
grant create table to userName;
h. 授予用户无限制使用表空间权限
grant unlimited tablespace to userName;
i. 授予权限及撤销权限
grant 权限 to userName;
revoke 权限 from userName;
grant select on mytab to userName;
grant update on mytab to userName;
grant delete on mytab to userName;
grant insert on mytab to userName;
revoke select on mytab from userName;
批量赋权: https://www.cnblogs.com/abcwt112/p/5507917.html
j. 查看用户拥有权限
select * from user_sys_privs;
k. 授予/撤销其他用户操作表的所有权限
grant all on mytab to userName;
revoke all on mytab from userName;
l. 查询其他用户对当前用户表的操作权限
select * from user_tab_privs;
m. 权限传递
grant create session to userName with admin option; //表示把系统权限授予给userName,并允许其授予给其他用户
grant update on mytab to userName with grant option; //表示把操作表的权限授予给userName,并允许其授予给其他用户