Oracle11g数据库windows部署及配置
1.安装配置过程:https://blog.csdn.net/wudiyong22/article/details/78904361
(1).安装过程中忘记了解锁账号,所以在安装完成后,进入SQL Plus,登录system账号进行解锁
alter user scott account unlock;
(2).解锁了还得修改默认密码呀,所以
alter user scott identified by 密码;
2.登录system等管理员账号新建数据库用户
create user 账号 identified by 密码;
3.新用户账号授权
grant [权限1][权限2]... to 用户名;
4.查询所有用户
select * from dba_users;
5.查看所有用户所在表空间
select username,default_tablespace from dba_users;
6.查询所有表空间路径
select * from dba_data_files ;
7.创建一个表空间
create tablespace GPMGT_DATA datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\GPMGT_DATA_1.DBF'
size 200m
autoextend on
next 32m maxsize 2048m
extent management local;
8.创建临时表空间
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。
create temporary tablespace GPMGT_TEMP tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\GPMGT_TEMP.dbf'
size 50M autoextend ON next 10M maxsize 100M;
9.分配表空间和临时表空间
alter user gpmgt default tablespace GPMGT_DATA temporary tablespace GPMGT_TEMP;
10.查看所有表空间使用情况
select a.file_id as FileNo ,
a.tablespace_name as Tablespace_name,
a.bytes as Bytes,
a.bytes - sum(nvl(b.bytes, 0)) as Used,
sum(nvl(b.bytes, 0)) as Free,
sum(nvl(b.bytes, 0)) / a.bytes * 100 as PerFree
from dba_data_files a, dba_free_space b
where a.file_id = b.file_id(+)
group by a.tablespace_name, a.file_id, a.bytes
order by a.tablespace_name;
11.给用户分配权限
grant create session,create table,create view,create sequence,unlimited tablespace to gpmgt;
12.查看用户角色
SELECT * FROM USER_ROLE_PRIVS;
13.查看当前用户权限:
select * from session_privs;
14.表空间重命名
alter tablespace GPSPACE rename to GPMGT_DATA;
15.最后导入表数据
exp/imp lqf/sa@ip/orcl file='...dmp' log='...log'
16.权限有系统权限,角色权限和对象权限
系统权限:
允许用户登录: create session
允许创建表:create table
允许创建视图:create view
允许创建序列:create sequence
允许创建过程:create procedur
例如,将前两个权限授予kobe用户,使用语句
GRANT create session,create table TO kobe;
角色权限:
数据库中系统权限,用户权限很多,如果针对每个用户逐个分配每个权限,费时又费力。因此,可以将相关的一系列权限组成一个命名的组,这个权限组就是角色。角色拥有的权限就是角色权限,将角色权限授予用户,则这个角色权限拥有的权限就全部授予了这个用户。一个用户可以被指定为多个角色,则同时拥有这多个角色所拥有的全部权限。例如:
create role dev; //创建dev角色
grant create table ,create view,create sequence to dev; //给dev角色授权
grant dev to kobe; //把dev中的权限授予kobe用户
对象权限:
对象权限是在指定的表,视图,序列和过程等对象上执行特定操作的权限,包括insert,delete,update,select以及index,alter,references(引用权限)和execute(执行权限)。但并不是每个对象都可以被授予这些权限
例如,给kobe用户授予针对雇员表emp的插入和查询权限该如何做?
雇员表emp的所有者是SCOTT用户,因此用SCOTT用户访问oracle数据库,完成对kobe用户的授权工作
SQL语句如下:
grant select, insert on emp to kobe
此时授权完成。执行下面的SQL语句:
select * from emp;
提示“表或视图不存在”。这是因为在数据库中,方案(schema)是管理数据库对象的逻辑结构,一个数据库对象的全称应该是:“方案名.对象名”(默认情况下方案名等于用户的名字),之前不使用方案名的原因是用户操作的数据库对象是本用户的对象,方案名可以省略。而现在是用kobe用户访问数据库,需要操作SCOTT用户的emp对象,所以必须要写全名。正确的SQL语句如下:
select * from Scott.emp;
每次访问数据库对象时都得带着方案名,若是觉得不舒服,可创建同义词(SYNONYM,需要有创建同义词的权限),通过同义词进行访问,SQL语句如下:
create SYNONYM emp for Scott.emp;
select * from emp;
撤销权限:
使用revoke语句撤销已经授予用户的权限
例如要撤销给kobe用户针对雇员表emp的插入权限(scott用户身份下操作),SQL语句如下:
revoke insert on emp from Kobe
撤销kobe用户创建序列的系统权限的功能,SQL语句如下(用系统管理员账户):
revoke create sequence from Kobe
浙公网安备 33010602011771号