内网配置nat123端口映射,实现外网连接内网ORACLE数据库

时间:2024.5.13

内网配置nat123端口映射,实现外网连接内网ORACLE数据库 因为服务器没有公网IP,在内网部署的数据库在外网不能直接访问。

通过内网NAT端口映射,可以实现在外网直接访问内网数据库,进行数据库操作。

详细方法如下示例:

1.确认内网正常访问数据库:

明确数据库内网IP(192.168.1.21)端口(1521)。

明确内网正常访问连接数据库。内网连接参数参考如下图示:

内网配置nat123端口映射实现外网连接内网ORACLE数据库

这里用PLSQL工具连接ORACLE。

内网配置nat123端口映射实现外网连接内网ORACLE数据库

内网配置nat123端口映射实现外网连接内网ORACLE数据库

2.配置nat123端口映射:

内网登录nat123,端口映射添加。

添加映射,内网IP:(192.168.1.22),内网端口(1521),外网网址(为空),外网端口(15210,可10000-65535之间自定义)。

内网配置nat123端口映射实现外网连接内网ORACLE数据库

确认保存成功,关闭添加映射窗口后,查看端口映射列表。

显示已添加端口映射信息。显示此外网网址(122.10.93.61)是自动分配的公网IP。

图标显示小笑脸时,表示映射服务正常,当前可通过外网地址端口(122.10.93.61:15210)直接连接内网ORACLE数据库。

在非原数据库内网环境下连接参数参考如下图示:

配置ORACLE连接参数,

内网配置nat123端口映射实现外网连接内网ORACLE数据库

连接ORACLE数据库

内网配置nat123端口映射实现外网连接内网ORACLE数据库

连接成功

内网配置nat123端口映射实现外网连接内网ORACLE数据库

到此,只要不关闭或退出映射服务,即可在外网直接连接内网ORACLE数据库


第二篇:ORACLE数据库操作总结大全


Oracle 数据库操作总结

目 录

1.          登录操作... 2

2.          常用工具... 2

3.          SQL Plus常用命令... 2

4.          常用数据类型: 3

5.          SQL分类... 3

6.          数据操作(DML)... 3

6.1.       查询语句... 3

6.2.       插入语句... 6

6.3.       修改记录... 7

6.4.       删除记录... 7

6.5.       ROLLBACK (回滚)... 7

6.6.       左连接与右连接... 7

7.          标量函数的使用... 9

8.          对象管理(DDL)... 12

8.1.       表... 12

8.2.       视图... 13

8.3.       序列... 14

8.4.       表空间... 15

9.          约束... 15

10.        用户管理... 16

11.        权限管理... 17

12.        角色管理... 18

13.        表空间与段... 18

13.1.         表空间... 18

13.2.         段... 19


1.   登录操作

Oracle安装好后,系统默认有超级管理员“sys”和普通用户“scott”。 scott的密码是tiger。

如果要使用scott用户登录,则要做以下工作。

(1)    新建一个服务别名myorcl(名字可以自己命名),使服务别名指向要登录的数据库。

(2)    用sys超级管理员给scott用户解锁(因为scott这个用户被锁住了,不能登录)。解锁命令:ALTER USER scott ACCOUNT UNLOCK。

(3)    用户scott用户登录,登录命令:sysplus scott/tiger@myorcl。

SQLPlus工具登录命令:                        

系统管理员登录,DOS中执行命令:sqlplus username/password@serviceName as sysdba

    普通用户登录,DOS中执行命令:sqlplus username/password@serviceName                               

2.   常用工具

SQLPlus                      

系统管理员登录,DOS中执行命令:sqlplus username/password@serviceName as sysdba

    普通用户登录,DOS中执行命令:sqlplus username/password@serviceName                                

SQLPLusW 可视化窗口                       

DOS中执行命令:sqlplusw

iSQLPlus(网页形式):             

访问网页地址:http://192.168.0.1:5560/isqlplus/

Enterprise Manager(网页形式):  

访问网页地址:http://192.168.0.1:5500/em/

说明:访问iSQLPlus(网页形式)和Enterprise Manager(网页形式)时需要网址端口号,如果忘记,可在此文件中查:ORACL_HOME/product/10.2.0/db_1/install/portlist.ini。

3.   SQL Plus常用命令

SQL Plus中的常用命令:

select * from tab; 列出当前用户下的所有表。

show user; 察看当前连接的用户

connect scott/password 采用scott的用户名/密码连接数据库

desc table_name; 察看tableName表结构

quit | exit ; 退出

disconnect; 断开连接

clear screen; 清屏,相当于Windows下的cls命令

@ path 执行path指定的脚本文件

4.   常用数据类型:

varchar2变长字符串

char 定长字符串

Integer 整型

number ( m, n) 数字型

smallint 短整型

float 浮点数

decimal 十进制数字

date 日期型

5.   SQL分类

 DML(Data Manipulation Language,数据操作语言)

 用于检索或修改数据

 DDL(Data Definition Language,数据定义语言)

用于定义数据的结构,如创建修改或者删除数据库对象

 DCL(Data Control Language,数据控制语言)

用于定义数据库用户的权限

6.   数据操作(DML)

6.1.  查询语句

基本数据查询

select 内容 from 表名;

select distinct job from emp;去除重复行

限定查询(查询满足条件的行)

SELECT * | 列名FROM 表名WHERE 条件;

SELECT empno,ename,commFROM empWHERE comm IS NOT NULL;

限定查询----IS NULL和IS NOT NULL的使用

SELECT empno,ename,commFROM empWHERE comm IS NULL查询谁没有奖金

限定查询----AND 的使用

 查询工资大于1500,并且可以领取奖金的雇员

 SELECT empno,ename,sal,commFROM EMPWHERE sal > 1500 AND comm IS NOT NULL;

限定查询----OR 的使用

 查询工资大于1500和可以领取奖金的雇员

 SELECT empno,ename,sal,commFROM EMPWHERE sal > 1500 OR comm IS NOT NULL;

限定查询----使用NOT对条件整体取反

 查询工资不大于1500并且不能领取资金的雇员

 SELECT empno,ename,sal,commFROM empWHERE NOT (sal>1500 AND comm IS NOT NULL);

限定查询----BETWEEN ... AND...的使用

 查询基本工资大于等于1500并且小于等于3000的雇员

SELECT empno,ename,sal,commFROM empWHERE sal BETWEEN 1500 AND 3000

限定查询----IN 的使用

 查询出雇员编号是7369,7499,7521的雇员的具体信息

 SELECT *FROM empWHERE empno IN(7369,7499,7521);

限定查询----NOT IN 的使用

 查询出雇员编号不是7369,7499,7521的雇员的具体信息

 SELECT *FROM empWHERE empno NOT IN(7369,7499,7521);

限定查询----LIKE 的使用

 查询中雇员的名字第二个字符是M的雇员信息

 SELECT empno,ename,comm,salFROM empWHERE ename LIKE '_M%';

 说明: _ 匹配一个字符,% 匹配0个或多个字符

限定查询----LIKE 匹配日期

 查询1982年入职的所有雇员的信息

 SELECT *FROM empWHERE hiredateLIKE '%82%'

限定查询----LIKE 匹配数字

 查询工资中包含 5 的雇员信息

 SELECT *FROM empWHERE salLIKE '%5%'

对结果排序----ORDER BY

带有ORDER BY 子句的SQL语句基本格式

SELECT 列... FROM 表 WHERE 条件 ORDER BY 列

 查询员工资大于1500的信息,按工资排序

 SELECT * FROM emp WHERE sal>1500 ORDER BY sal

查询工资大于1500员工的信息,按工资降序,按雇佣日期升序排序

 SELECT * FROM emp WHERE sal>1500ORDER BY salDESC,hiredate ASC

 说明: ASC 排序,DESC降序,默认ASC

左、右外连接

查询员工编号,姓名,所在部门号,部门名称,将没有员工的部门也显示出来

SELECT e.ename,d.deptno,d.dnameFROM emp e,dept dWHERE e.deptno(+)=d.deptno;

注:(+)在左边,表示右连接,会列出右表中出现但是没有在左表中出现的行

交叉连接(CROSS JOIN):用来产生笛卡尔积的

SELECT * FROM emp CROSS JOIN dept;

自然连接(NATURAL JOIN):自动进行关联字段的匹配

SELECT * FROM emp NATURAL JOIN dept;

USING子句:直接指定操作关联列

SELECT * FROM emp JOIN dept USING(deptno);

ON 子句:用户自己编写连接条件

SELECT * FROM emp JOIN dept ON emp.deptno=dept.deptno;

RIGHT JOIN:右外连接

SELECT e.empno,e.ename,d.deptno,d.dname FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

子查询---IN 的使用

 查询和SMITH或JONES在同一部门,同一职位工作的员工

SELECT * FROM emp WHERE (deptno,job) IN(SELECT deptno,job FROM emp WHERE enameIN('SMITH','JONES'));

子查询---ANY 的使用

 =ANY : 与 IN操作符的效果一致

查询和SMITH或JONES在同一部门,同一职位工作的员工

SELECT * FROM emp WHERE (deptno,job) =ANY (SELECT deptno,jopFROM emp WHERE ename IN('SMITH','JONES'));

>ANY : 只要大于子查询中的任何一个值即可

SELECT * FROM emp WHERE sal > ANY(SELECT MIN(sal) FROM EMP GROUP BY deptno);

>ALL:比最大的值大

SELECT * FROM emp WHERE sal>ALL(SELECT MIN(sal) FROM emp GROUP BY deptno);

<ANY : 只要小于子查询中的任何一个值即可

SELECT * FROM emp WHERE sal< ANY(SELECT MIN(sal) FROM emp GROUP BY deptno);

<ALL:比最小的值小

SELECT * FROM emp WHERE sal<ALL(SELECT MIN(sal) FROM emp GROUP BY deptno);

6.2.  插入语句

intsert into 表名 values(值1 值2 值3…..)  插入的数值的字段类型要与定义的时候一样

intsert into 表名 values(值1,值2,null,值3………) 有不想写的可以用null 来标示

intsert into 表名(字段1.字段2,字段3………) values(值1 值2 值3……)  类型对应

注意:数值的 类型 个数 顺序 不能超过最大值

插入记录到表中INSERT 的语法

INSERT INTO 表名(字段名1,字段名2,......)VALUES(值1,值2......);

为MYEMP中增加一条记录

INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES(7899,'张三','清洁工','7369','14-2月 -1995',9000,300,40)

注:给定的值要和指定的字段数一致

当为表中的所有列都插入数据数,可以采用如下简单写法

INSERT INTO 表名VALUES(值1,值2......);

INSERT INTO myemp VALUES(7991,'李四','清洁工','7369','14-2月 -

1995',9000,300,40)

注:要求给定值的数目和表中列的数目一致,并且值的顺序和表中列的顺序一致。

新增加一条记录到MYEMP中,但是该员工没有奖金也没有上级领导

 第一种写法:

INSERT INTO myemp (empno,ename,job,hiredate,sal,deptno)

VALUES(7899,'张三','清洁工','14-2月 -1995',9000,40)

 第二种写法:(用null来指定没有值的列)

INSERT INTO myemp VALUES(7898,'王五','清洁工',null,'14-2月 -

1995',9000,null,40)

新增加一条记录到MYEMP中,但日期格式按'1988-09-09'的方式指定

? TO_DATE函数的使用

INSERT INTO myemp(empno,ename,job,hiredate,sal,deptno)

VALUES(7896,'赵六','清洁工',TO_DATE('1984-09-09','yyyy-mm-dd'),9000,40);

6.3.  修改记录

update 表名 set 字段= 值,字段 =值 ,字段= 值……. where 条件;

注意:条件必须写

6.4.  删除记录

delete from 表名 where 条件;

注意:条件必须写

 

6.5.  ROLLBACK (回滚)

在sqlplus 中如果使用 ROLLBACK的话那么将 撤销操作直到 上次执行 commit 的时候的状态

6.6.  左连接与右连接

数据表的连接有:

1、内连接、自然连接: 只有两个表相匹配的行才能在结果集中出现

(1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
  (2)不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。  
  (3)自然连接:自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不去掉重复的属性列。

等值连接与自然连接的区别:

(1)等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。   

(2)等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。

 
2、外连接:

  (1)左外连接 (左边的表不加限制)
  (2)右外连接(右边的表不加限制)
  (3)全外连接(左右两表都不加限制)
3、自连接(连接发生在一张表内)

SQL标准连接语法:
select table1.column, table2.column
from table1

[inner | left | right | full ] join table2 on table1.column1 = table2.column2;

例如:

select a.*,b.*

from a

left join b on a.编号=b.编号

INNER JOIN表示内连接;

LEFT JOIN 或 LEFT OUTER JOIN表示左外连接;

RIGHT JOIN 或 RIGHT OUTER JOIN表示右外连接;

FULL JOIN 或 FULL OUTER JOIN表示完全外连接;不管匹配
ON子句用于指定连接条件。


如果主表的主键列和从表的外部键列名称相同,那么可以使用自然连接 (natural join) 关键字自动匹配内连接操作。

使用“(+)”符号的左右连接:

右连接:

select a.studentno, a.studentname, b.classname
from students a, classes b
where a.classid(+) = b.classid;

左连接:

select a.studentno, a.studentname, b.classname
from students a, classes b
where a.classid = b.classid(+);

"(+)"写在主表的另一侧,主表的所有记录均会被显示。

"(+)"所在位置的另一侧为连接的方向。右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配。左连接相反。

注意:

如果使用from子句指定内、外连接,则必须要使用on子句指定连接条件;
如果使用(+)操作符指定外连接,则必须使用where子句指定连接条件。

7.   标量函数的使用

转化大小写

select upper(‘sddfa’) from dual  select lower(‘sddfa’) from dual

将首字母大写 其余小写 

select initcap (ename)from emp;

连接字符串:

select count(deptno)from dept;

select contact (‘hello’,’woeld’) from dual;

select ‘abc’|| ‘jkh’|| ‘sdf’ from dual;

求子串:

select substr (字符串,起始位,结束位) from dual;  起始位写 0或者1 都可以代表第一位

select substr (字符串,起始位) from dual;  从起始位开始往后截取

求字符串长度:

select length(ename )from emp;

字符串替换

select replace (原始字符串,想要被替换的字符串,替换字符串 )from dual;

输出字符串的后三位

select  ename ,substr(ename,length(ename)-2) from dual ;

select  ename substr(ename,-3)from dual ;

四舍五入

select round(132.78454)from dual; 四舍五入取整

select round(132.78345,2)from dual; 四舍五入并且指定保留小数点的位数

select round(1323.7858416,-2)from dual;小数不要 并且 整数位两位取整  本代码得1300

截断小数位

select trunc (546541.151) from dual  不管四舍五入  直接截断小数 5465541

select trunc(789.536,2) from dual  截断小数 指定小数的数位  789.53

select trunc(789.536,-2) from dual  截断小数 并且对整数进行截断  700

取余

select mod(10,3)from dual ;   取余数 1

运算规律:

日期+ 数字=日期

日期--数字=日期

日期—日期 = 数字

显示系统时间

select sysdate from dual;

select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss') from dual;

显示某本门员工进入公司星期数:

select empno,ename ,round((sysdate-hiredate)/7)from emp where deptno=10;

在指定的日期加上指定的月数后的日期:

select add_months(sysdate,2) from dual;

求出给定日期范围的月数:

select empno ename month_between(sysdate,hiredate) from emp;

下一个给定的星期是那个日期:

select next_day(sysdate,’星期一’) from dual;

求出给定日期所在的 月份的最后一天的日期

select last_day(sysdate) from dual;

转换函数

转换成字符串(TO_CHAR)

查询雇员号,姓名,以及入职的年份

SELECT empno,ename,TO_CHAR(hiredate,'yyyy')FROM emp;

说明:yyyy 匹配年份,mm 匹配月份,dd 匹配日

使用TO_CHAR设置日期的显示格式

 SELECT empno,ename,TO_CHAR(hiredate,'yyyy-mm-dd')FROM emp;

使用fm去掉前导 0

 SELECT empno,ename,TO_CHAR(hiredate,'fmyyyy-mm-dd')FROM emp;

通过TO_CHAR设置数值的格式

 SELECT empno,ename,TO_CHAR(sal,'99,999') FROM emp;

 说明:9 代表 1 位数字

显示金额

 SELECT empno,ename,TO_CHAR(sal,'$99,999') FROM emp;

 说明:$代表美元,L代表本地

转换成数字(TO_NUMBER)

 SELECT TO_NUMBER('123') +TO_NUMBER('123') FROM dual;

转换成日期(TO_DATE)

 SELECT TO_DATE('20##-07-31' ,'yyyy-mm-dd') FROM dual;

通用函数

查询每个员工的年收入

SELECT empno,ename,(sal+NVL(comm,0))*12 incomeFROM emp;

说明:(COMM,0) 当comm的值为null时,用 0 替换

常用的列函数

 SUM(expression) 求和

 MAX(expression) 求最大值

 MIN(expression) 求最小值

 COUNT(expression) 统计记录数

 COUNT(DISTINCT COLNAME) 统计去除重复行记录数

SQL语句的执行顺序

FROM

WHERE

GROUP BY

HAVING

SELECT

ORDER BY

8.   对象管理(DDL)

8.1.  表

创建表

create table 表名(字段1 数值类型 defult xx, 字段2 数值类型,……………);

create table CUSTOMER

(

   CUSTOMER_ID                    int                    not null,

   CUSTOMER_NO                    varchar(100),

   CUSTOMER_NAME               varchar(200),

   TYPE                        INT,          -- 客户类型

   SOURCE_TYPE_ID                      int,  -- 来源

   INDUSTRY_TYPE_ID                    int,  -- 行业

   LEVEL_TYPE_ID                       int,  -- 等级

   REGION_TYPE_ID                      int,  -- 区域

   CREDIT_TYPE_ID                      int,  -- 信用

   primary key (CUSTOMER_ID)

);

defult 是默认值 可写 可不写

create table 表名2  as 表名1   复制表2 到 表1 中

create table 表名 as (子查询)  复制子查询结果这张表,当子查询结果没有记录时 这时 只会复制 表结构(数据类型) 而不会增加数据(有时目的只是复制表结构 那么就使用这种方法 比如查询语句中 使用 select 1=2 from 表名 )

删除表

drop table 表名;

注意:delete 是删除表里面的数据

修改表结构

增加一列:

alter table 表名add(列名称 列数据类型 defult 默认值)

注意:defult 和默认值 可写 可不写

删除列:

alter table 表名 drop column 列名称

注意:不管有没有数据都会删除

修改列的数据类型:

alter table 表名 modify (列名称 数据类型 defult 默认值)

注意:修改的时候(和原来相同数据类型) 长度 要求不能小于数据中 数据的最小长度,但是能增大,要想 改变数据类型的话,必须将字段下的数据全部删除 才可以更改数据类型

表名重命名

rename 表名(旧) to 表名(新);

截断表

truncate 表名;

注意:清空表中的所有数据 立即释放资源,该操作不可回滚

ROWNUM

表示行号, 是一个伪列,可以在每一张表中出现

应用:查询表中记录的前五行

SELECT *

FROM EMP

WHERE ROWNUM BETWEEN <=5;

现在要查询从6 到 10条记录,使用子查询

SELECT *FROM(SELECT ROWNUM num,empno,ename,salFROM emp) eeWHERE rownum BETWEEN 6 AND 10;

8.2.  视图

创建视图

语法:CREATE VIEW 视图名称 AS 子查询

例如:创建部门20员工的雇员信息,包含EMPNO,ENAME,SAL,DEPTNO

CREATE VIEW empv20 AS

SELECT empno,ename,sal,deptno FROM emp;

注:当创建视图以后,可以像操作表一样的操作视图

注:当创建视图时,视图的操作会影响到对表的操作,这是不安全的,我

们可以采用如下选项来创建视图

? WITH CHECK OPTION 不能更新创建视图的条件

? WITH READ ONLY 创建只读视图

删除视图

语法:DROP VIEW 视图名称

DROP VIEW empv20; 删除视图 empv20;

注:当删除视图所在的表时,则视图也不能再被使用

8.3.  序列

创建序列

语法:CREATE SEQUENCE 序列名称

[MAXVALUE num | NOMAXVALUE]

[MINVALUE num | NOMINVALUE]

[INCREMENT BY num START WITH 10]

[CACHE num | NOCACHE];

[CYCLE | NOCYCLE]

创建序列CREATE SEQUENCE myseq;

序列的操作

 nextVal :取得序列的下一个内容

 currVal:取得当前序列的内容

select  序列名称.nextval from dual.

创建表验证序列的操作

? CREATE TABLE testseq(

next NUMBER;

CURR NUMBER;

)

 INSERT INTO testseq VALUES(myseq.nextVal,myseq.currVal);

 将以上插入语句,执行5次,观察效果,不难得出结论,nextVal每次都会加1,而

currVal都是取当前值

创建序列指定每次增长的增量

 CREATE SEQUENCE myseq INCREMENT BY 2;

创建序列指定开始的序列,默认的序列从1开始。

 CREATE SEQUENCE myseq INCREMENT BY 2 START WITH 10;

创建一个循环序列 1,3,5,7,9。

 CREATE SEQUENCE myseq MAXVALUE 9 INCREMENT BY 2

START WITH 1 CACHE 2 CYCLE;

8.4.  表空间

创建表空间

CREATE TABLESPACE 表空间名称 DATAFILE '数据文件的全路径' SIZE表空间的大小;

删除表空间

 DROP TABLESPACE 表空间名称;

 注:在进行相应操作时,应该具有相应的操作权限

9.   约束

constraint 约束名 约束 字段

主键约束(PRIMARY KEY)

CONSTRAINT persion_pid_pk PRIMARY KEY(pid);

非空约束:

name VARCHAR2(30) NOT NULL,

唯一约束:

name VARCHAR2(30) UNIQUE NOT NULL, 在创建表时声明

CONSTRAINT person_name_uk UNIQUE(pid) 在表的结尾声明

检查约束:(check)

age NUMBER(3) NOT NULL CHECK(age between 1 and 150),

主外键约束:(如一本书要属于一个人)

CREATE TABLE person(

pid VARCHAR2(18),

name VARCHAR2(30) NOT NULL,

age NUMBER(3) NOT NULL,

birthdate DATE,

sex VARCHAR2(2) DEFAULT '男'

CONSTRAINT person_pid_pk PRIMARY KEY(pid),

CONSTRAINT person_name_uk UNIQUE(name),

CONSTRAINT person_age_ck CHECK(age BETWEEN 1 AND 150),

CONSTRAINT person_sex_ck CHECK(sex IN ('男','女','中'))

);

CREATE TABLE book(

bid NUMBER PRIMARY KEY NOT NULL,

bname VARCHAR(30),

bprice NUMBER(5,2),

pid VARCHAR2(18),

CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES person(pid)

);

增加约束

ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(约束字段)

 例:分别增加主键约束和外键约束给book表

ALTER TABLE book ADD CONSTRAINT book_bik_pk PRIMARY KEY(bik);

ALTER TABLE book ADD CONSTRAINT person_book_pid_fk FOREIGN

KEY(pid) REFERENCES person(pid) ON DELETE CASCADE;

约束的命名规范(建议)

 PRIMARY KEY :表名称_主键名称_pk;

 UNIQUE :表名称_字段名称_uk

 CHECK :表名称_字段名称_ck

 删除约束

 ALTER TABLE 表名称 DROP CONSTRAINT 约束名称;

10.          用户管理

 创建用户

 CREATE USER 用户名 IDENTIFIED BY 密码 ACCOUNT UNLOCK;

 为用户授予连接的权限

 GRANT CONNECT TO 用户名;

 为用户授权为查询SCOTT下emp表的权限

 GRANT SELECT ON SCOTT.emp TO 用户名;

 删除用户

 DROP USER 用户名;

 修改用户的默认表空间

 ALTER USER 用户名 DEFAULT TABLESPACE 表空间名;

 修改用户的密码

 ALTER USER 用户名 IDENTIFIED BY 新密码;

锁定用户

 ALTER USER 用户名 ACCOUNT LOCK;

 解锁用户

 ALTER USER 用户名 ACCOUNT UNLOCK;

11.          权限管理

 级联授权(对象权限,WITH GRANT OPTION)

 GRANT 权限 TO 用户名 WITH GRANT OPTION;

 GRANT ALL ON SCOTT.DEPT TO 用户名 WITH GRANT OPTION;

为用户授权操作表空间的权限

 GRANT UNLIMITED TABLESPACE TO 用户名;

 给用户授予创建用户的操作

 GRANT CREATE USER TO 用户名;

给用户授予删除用户的操作

 GRANT DROP USER TO 用户名;

级联授权(系统权限,WITH ADMIN OPTION)

 GRANT 系统权限 TO 用户名 WITH ADMIN OPTION;

 GRANT CREATE USER TO 用户名 WITH ADMIN OPTION;

解除用户的权限

 REVOKE 权限 FROM 用户名;

 REVOKE SELECT ON SOCTT.EMP FROM 用户名;

 REVOKE CREATE USER FROM 用户名

12.          角色管理

 创建角色

 CREATE ROLE 角色名称;

 为角色授权

 GRANT SELECT ON SCOTT.EMP TO 角色名称;

 GRANT SELECT ON SCOTT.DEPT TO 角色名称;

 为用户授予某个角色

 GRANT myrole TO 用户名称;

 删除角色

 DROP ROLE 角色名称

13.          表空间与段

13.1.     表空间

Oracle数据库中主要的表空间类型有:永久表空间、撤销表空间和临时表空间。

永久表空间。

撤销表空间。多个撤销表空间可以存在于一个数据库中,但在任何给定的时间内只有一个撤销表空间可以是活动的。撤销表空间用于回滚事务。

临时表空间。数据库中可以有多个临时表空间联机并处于活动状态,但在Oracle 10g之前,同一个用户的多个会话只可以使用同一个临时表空间,因为只有一个默认的临时表空间可以被赋予用户。为了解决这个潜在的性能瓶颈,Oracle现在支持临时表空间组。临时表空间组即为一系列临时表空间。临时表空间组必须至少包含一个临时表空间,它不可以为空。一旦临时表空间组没有任何成员,它将不再存在。使用临时表空间组的一个最大优点是,向具有多个会话的单个用户提供如下功能:对每个会话使用不同的实际临时表空间。并不是将单个临时表空间赋给用户,而是赋予临时表空间组。

在创建用户的时候可以显示指定用户的默认永久表空间和临时表空间,也可以不显示指定。在早期的Oracle版本中,如果在创建用户时没有指定DEFAULT TABLESPACE和TEMPORARY TABLEPACE,它们将默认为SYSTEM表空间。在Oracle Database 10g中,在创建数据库期间,CREATE DATABASE命令可以包含子句DEFAULT TABLESPACE {tablespace},在创建用户时没有指定DEFAULT TABLESPACE和TEMPORARY TABLEPACE,则用数据库的默认表空间。

13.2.     段

Oracle段的类型:

1.       临时段

   当执行如下操作时会产生临时数据:create index,order by,group by,distinct,union,intersect,minus,analyze。

2.       回退段与撤销段

在Oracle 9i之前,回滚表空间创建之后,Oracle随后创建回滚段供数据库使用,也可以手工创建或者删除回滚段进行。通过如下命令指定使用特定的回滚段:set transaction user rollback segment <rollback_segment_name>;

从Oracle 9i开始,Oracle引入了自动管理的Undo表空间,用撤销段(undo segment)代替回退段(rollback segment)。如果选择使用自动的Undo表空间的管理,那么用户不再能够创建或删除回滚段,也不再需要为事务指定回滚段,这一切将由Oracle自动进行。

更多相关推荐:
FTP21端口和20端口

一个是数据端口一个是控制端口控制端口一般为21而数据端口不一定是20这和FTP的应用模式有关如果是主动模式应该为20如果为被动模式由服务器端和客户端协商而定FTPPort模式和FTPPassive模式当你对一个...

FTP端口号20和21

个主动模式的FTP连接建立要遵循以下步骤客户端打开一个随机的端口端口号大于1024在这里我们称它为x同时一个FTP进程连接至服务器的21号命令端口此时源端口为随机端口x在客户端远程端口为21在服务器客户端开始监...

对服务器的ftp端口进行修改

对服务器的ftp端口进行修改对服务器的ftp端口进行了修改把21端口改了比如221端口就这样用221连接的时候连接登录成功但打不开目录为何总结如下1完成一个FTP的传输过程不仅仅只需要21一个端口而是2个端口2...

修改ftp默认端口

将FTP站点设置成PASV模式1启用直接编辑元数据库打开IISMicrosoft管理控制台MMC控制面板gt管理工具gtInternet信息服务IIS管理器gtInternet信息服务gt本地计算机右击本地计算...

FTP协议使用两个连接

FTP协议使用两个连接一个叫控制连接另一个叫数据连接FTP的命令和应答通过控制连接来交换这个连接会存在于整个FTP会话过程中另一方面一个文件或一个文件列表通过数据连接来传送这个连接是当每次文件传输时才新建立的通...

FTP主动模式与FTP被动模式端口问题

FTP是仅基于TCP的服务不支持UDP与众不同的是FTP使用2个端口一个数据端口和一个命令端口也可叫做控制端口通常来说这两个端口是21命令端口和20数据端口但FTP工作方式的不同数据端口并不总是20这就是主动与...

ftp 21端口被占用解决办法

ftp21端口被占用解决办法20xx0516091712最近发现服务器ftp21端口被占用在博客园里找到这个方法不错来分享下有时安装程序时会出现XX端口被占用的情况可以通过CMD命令查看什么程序占用1netst...

TCP&IP端口号

1tcpmuxTCP端口服务多路复用5rje远程作业入口7echoEcho服务9discard用于连接测试的空服务11systat用于列举连接了的端口的系统状态13daytime给请求主机发送日期和时间17qo...

TCP IP应用程序使用的公认端口号

TCP IP应用程序使用的公认端口号,内容附图。

常见网络应用使用的端口号

一常见网络应用使用的端口号如下ftpdata20tcpFTPdataftp21tcpFTPcontroltelnet23tcpsmtp25tcpSimpleMailTransferProtocoltime37t...

TFTP自动升级工具使用简介

TFTP自动升级工具使用说明1连接设备使电脑和网络摄像机在同一局域网内使用交叉线将网络摄像机和电脑直连或者使用交换机2使用SADP软件搜索出设备查看参数包括序列号端口号程序版本设备型号等等3如果确认密码端口号没...

tftp模块研究报告

TFTP模块使用指南目录1前言211关于本文档212背景知识2121tftp协议2122tftp报文格式312术语32tftp模块介绍421TFTP的工作原理43tftp开源组件631tftp开源组件和编译说明...

ftp数据连接端口号(6篇)