返回顶部
首页 > 资讯 > 数据库 >oracle中sql如何操作
  • 645
分享到

oracle中sql如何操作

2024-04-02 19:04:59 645人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关oracle中sql如何操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。oracle用户sys、system区别:sys用户是超级用户,具有

这篇文章将为大家详细讲解有关oraclesql如何操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

oracle用户sys、system区别:

sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限

system用户是管理操作员,权限也很大,具有sysoper角色,没有create database的权限

一般来说,对数据库维护,使用system用户登录就可以

sqlplus:

Usage 2: sqlplus [ [<option>] [{loGon | /nolog}] [<start>] ]

<option> is: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S]

<logon> is: {<username>[/<passWord>][@<connect_identifier>] | / }

            [AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value]

oracle一个数据库就是一个单实例(创建一个数据库就是创建一个单实例,默认有那么几个用户)

连接命令

1、conn,用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]

当用特权用户身份连接时,必须带上as sysdba或者as sysoper

使用空用户登录:

[oracle@oracle11g ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 15 22:31:50 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> show user;

USER is ""

SQL> 

使用system用户登录

[oracle@oracle11g ~]$ sqlplus system/redhat

SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 15 19:56:40 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

SQL> show user;

USER is "SYSTEM"

SQL> 

进行切换用户到scott

SQL> conn scott/redhat;

ERROR:

ORA-28000: the account is locked     表明用户已经被定了

使用系统用户进行解锁

SQL> conn system/redhat

Connected.

SQL> alter user scott account unlock;  该条命令进行解锁

User altered.

然后重新使用Scott用户登录

SQL> conn scott/tiger;

ERROR:

ORA-28001: the password has expired   告知用户scott密码过期

Changing password for scott

New password: 

Retype new password: 

Password changed

Connected.

SQL> show user;

USER is "SCOTT"

文件操作命令:

1、运行sql脚本,start /root/a.sql

SQL>start /home/oracle/a.sql

2、spool将sqlplus屏幕上的输入到一个文件中

SQL>spool /home/oracle/b.sql;

SQL>select * from emp;

SQL>spool off;  将select * from emp查询出来的内容保存到某个文件中

&:可以替代变量,而该变量在执行时,需要用户输入

SQL>select * from emp where job='&job';这里就会输入job的一个值来替代

SQL> select * from emp where job='&job';   

Enter value for job: MANAGER

old   1: select * from emp where job='&job'

new   1: select * from emp where job='MANAGER'

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7566 JONES      MANAGER         7839 02-APR-81       2975

        20

      7698 BLAKE      MANAGER         7839 01-MAY-81       2850

        30

      7782 CLARK      MANAGER         7839 09-JUN-81       2450

显示和设置环境变量:

SQL> show linesize;

linesize 80

SQL>set linesize 50;

创建用户

在oracle中要创建一个新的用户使用create user语句,一般是具有dba的权限才能使用

SQL> create user xiaoming identified by redhat;

User created.

SQL> show user;

USER is "SYSTEM"

给用户修改密码,需要dba权限或者alter user的系统权限

SQL> password xiaoming

Changing password for xiaoming

New password: 

Retype new password: 

Password changed

或者

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

SQL> alter user xiaoming identified by redhat;

User altered.

note:新创建的用户并不能马上能够登录,创建的新用户没有任何权限,所以登录不了

SQL> conn xiaoming/huang;

ERROR:

ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon deniedWarning: You are no longer connected to ORACLE.

SQL> show user;

USER is ""

删除用户:

一般以dba的身份去删除某个用户,如果用其他的用户去删除某个用户,需要具有drop user的权限

比如:drop user 用户名 [cascade]

在删除用户时,注意,如果删除的用户已经创建了表,那么就需要在删除的时候加上一个参数cascade

这个参数的意思就是删除用户以及用户创建的表

用户管理----》授权

创建的新用户是没有任何权限的,连登录都不行,需要为其制定相应的权限,赋予权限用grant命令

回收权限的命令为revoke

oracle事先就有权限这个定义,有两种

1、系统权限:用户对数据库访问的相关权限(建库建表建索引登录数据库等等)

create session(系统权限140个)

2、对象权限:用户对其他用户的数据对象访问操作的权限

数据对象:每个用户创建的表、视图、触发器等等(25个)

oracle角色:为了授予权限方便,事先定义了一些角色,赋予了一些权限

从系统权限中选出某些权限赋予给指定的角色

connect就是其中的一个角色(包含7个权限)

grant connect to xiaoming 

角色也分两种:

1、自定义角色:自己定义角色

2、预定义角色:数据库已经制定好的角色(connect就是预定义角色)

角色举例:

connect

dba:授予dba角色就会有dba系统的所有权限

resource:可以让某个用户在表空间建表

例子:

SQL> grant connect to xiaoming ;  将connect角色授予给xiaoming,并具备一些权限

Grant succeeded.

再次使用用户xiaoming登录:

SQL> conn xiaoming/redhat;   这样授权之后,用户xiaoming就可以登录了

Connected.

刚创建的用户并没有任何表,新创建的用户能否创建表呢?

SQL> conn xiaoming/redhat;

Connected.

SQL> show user;

USER is "XIAOMING"

SQL> create table student(id number,name varchar2(20));

create table student(id number,name varchar2(20))

*

ERROR at line 1:

ORA-01031: insufficient privileges

由上述报错发现,授予connect角色并不能创建表,那么在加上resource角色呢?

切换用户,并授予角色给xiaoming

SQL> show user;

USER is "XIAOMING"

SQL> conn system/redhat;

Connected.

SQL> grant resource to xiaoming;

Grant succeeded.

再次创建表

SQL> show user;

USER is "XIAOMING"

SQL> conn system/redhat;

Connected.

SQL> grant resource to xiaoming;

Grant succeeded.

SQL> conn xiaoming/redhat

Connected.

SQL> create table student(id number,name varchar2(20));

Table created.

SQL> desc student;

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 ID                                                 NUMBER

 NAME                                               VARCHAR2(20)

可以看出表创建成功,这就是resource角色的作用

对象权限:用户对其他用户的数据对象访问操作的权限

1、select

2、insert

3、update

4、delete

5、all

6、create index等等

数据对象:每个用户创建的表、视图、触发器等等(25个)

xiaoming这个用户能否查询scott用户下的某个表?

SQL> select * from emp;

select * from emp

              *

ERROR at line 1:

ORA-00942: table or view does not exist   可以清楚的看出不能访问scott下的表emp

该如何操作呢?

由于表emp是scott用户下面的,于是需要使用scott用户向xiaoming用户进行授权

SQL> conn scott/redhat

Connected.

SQL> grant select on emp to xiaoming;   使用scott用户进行授权

Grant succeeded.

SQL> conn xiaoming/redhat   连接xiaoming这个用户

Connected.

SQL> select * from emp;    查询表emp,但是依然失败,由于是scoot的表emp

select * from emp

              *

ERROR at line 1:

ORA-00942: table or view does not exist

所以需要下面这样进行查询

SQL> select * from scott.emp;  scott用户下面的表

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7369 SMITH      CLERK           7902 17-DEC-80        800

        20

收回权限revoke

scott收回xiaoming有查询的权限

revoke select on emp from xiaoming;

revoke收回权限,必须是原始用户对其赋予权限的那个用户收回

SQL> show user;

USER is "XIAOMING"

SQL> conn scott/redhat;

Connected.

SQL> revoke select on emp from xiaoming;

Revoke succeeded.

对权限的维护:

1、如果是对象权限

希望xiaoming用户可以去查询scott的emp表,而且还希望xiaoming可以把这个权限能够给另外的用户?

利用scott用户进行如下授权

SQL> show user;

USER is "SCOTT"

SQL> grant select on emp to xiaoming with grant option;

Grant succeeded.

然后新建一个用户,授予connect角色权限

SQL> conn system/redhat

Connected.

SQL> create user xiaobai identified by redhat;

User created.

SQL> grant connect to xiaobai;

Grant succeeded.

然后使用xiaoming用户给xiaobai用户进行授权

SQL> conn xiaoming/redhat

Connected.

SQL> grant select on scott.emp to xiaobai;

Grant succeeded.

最后使用xiaobai用户进行查询emp表

SQL> conn xiaobai/redhat

Connected.

SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM

---------- ---------- --------- ---------- --------- ---------- ----------

    DEPTNO

----------

      7369 SMITH      CLERK           7902 17-DEC-80        800

        20

2、如果是系统权限

system用户给xiaoming授权,并且使用户能够授权权限给其他用户

grant connect to xiaoming with admin option;   with admin option这里不同而已

使用profile管理用户口令

profile是口令限制,资源限制的命令集合,当监理数据库时,oracle会自动建立

名称为default的profile,当建立用户没有指定profile选项,那么oracle就会将default分配给用户

1、账户锁定

指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间,一般用dba的身份去执行该命令

例如:指定tea这个用户最多只能尝试三次登录,锁定时间为两天

创建profile文件(规则)

SQL>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;   -----》lock_account为profile名称随便起

SQL>alter user tea profile lock_account;  给用户tea添加上profile文件约束

2、解决锁定:

SQL> conn system/redhat;

Connected.

SQL> alter user scott account unlock;

User altered.

SQL> conn scott/redhat;

Connected

3、终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作

例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登录密码

宽限为2天        ----->宽限期限表示过了10之后,提醒你还有两天时间进行修改,相当于一共12天

SQL>create profile myprofile limit password_life_time 10 password_grace_time 2;

SQL>alter user tea profile myprofile;

4、口令历史

如果希望用户在修改密码时,不能使用以前使用过的密码,口令历史就是这样将口令修改的信息存放在一个数据字典中

这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时 ,就会提示用户需要重新输入密码

例子:

1、建立profile文件

SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;

---->password_reuse_time:指定口令可重用时间即10天后就可以重用(新旧密码一样,需要过10天才能使用)

2、分配给某个用户---》tea

SQL>alter user tea profile password_history;

删除profile

当不需要某个profile文件时,可以删除该文件

SQL>drop profile password_history [cascade];

用此profile约束过的用户都将失效

cascade:级联关系

关于“oracle中sql如何操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: oracle中sql如何操作

本文链接: https://lsjlt.com/news/67169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle中sql如何操作
    这篇文章将为大家详细讲解有关oracle中sql如何操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。oracle用户sys、system区别:sys用户是超级用户,具有...
    99+
    2024-04-02
  • Oracle SQL中如何进行除法操作
    标题:Oracle SQL 中的除法运算及代码示例 在Oracle SQL 中,除法运算使用的是除号(/)符号来实现。除法操作通常用于将一个数除以另一个数,并得到其商或者小数结果。在下...
    99+
    2024-03-11
    除法操作 分割数据
  • Oracle如何在SQL语句中对时间操作、运算
    目录0、date与timestamp1、获取系统当前时间2、oracle里获取一个时间的年、季、月、周、日的函数:3、日期操作4、常用的时间戳5、查询某时间范围总结0、date与timestamp 1)区别 date精确...
    99+
    2024-04-02
  • Servlet如何操作Oracle
    这篇文章主要介绍Servlet如何操作Oracle,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!package test;import java.io.IOException;import java.io.Print...
    99+
    2023-06-02
  • 用Python如何操作Oracle
    Iamlaosong文 Python没有自带oracle驱动,cx_Oracle可以实现Python访问oracle的目的,如果要访问Oracle,首先要下载安装cx_Oracle。下载地址:https://oracle.github.i...
    99+
    2023-01-31
    操作 Python Oracle
  • spark2.2.0如何配置spark sql操作hive
    小编给大家分享一下spark2.2.0如何配置spark sql操作hive,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!spark可以通过读取hive的元数据来...
    99+
    2023-06-02
  • SQL中的连接操作
    本篇内容主要讲解“SQL中的连接操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL中的连接操作”吧! 利用连接操作,可以根据表与表之间的逻辑联系从两个或...
    99+
    2024-04-02
  • Sql server中如何操作以及创建数据库
    这篇文章主要介绍了Sql server中如何操作以及创建数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.操作数据库二.创建表感谢你能...
    99+
    2024-04-02
  • 如何使用SQL操作MySQL数据库
    本篇内容主要讲解“如何使用SQL操作MySQL数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用SQL操作MySQL数据库”吧!从本节开始正式介绍各种...
    99+
    2024-04-02
  • linux操作系统如何安装sql developer
    本篇内容介绍了“linux操作系统如何安装sql developer”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • sql查询结果倒序如何操作
    在SQL中,可以使用ORDER BY子句和DESC关键字来对查询结果进行倒序排序。例如,如果要对一个表中的某一列进行倒序排列,可以使...
    99+
    2024-04-09
    sql
  • SQL中如何连接Oracle
    SQL中如何连接Oracle,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、设置PL/SQL,添加服务名称打开Net Manager:开始&...
    99+
    2024-04-02
  • 如何进行Oracle中update和select 关联操作
    这期内容当中小编将会给大家带来有关如何进行Oracle中update和select 关联操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、介绍本文主要向大家介绍了Oracle数据库...
    99+
    2023-06-26
  • Oracle数据库常用操作sql语句
    1.--建立表空间create tablespace cmdb_db datafile '\home\cmdb_11.dbf' size 100m autoextend on next 50m extent...
    99+
    2024-04-02
  • 了解Oracle和DB2的SQL操作异同
    Oracle和DB2是两种常见的关系型数据库管理系统,它们都支持SQL(Structured Query Language)用于数据库的操作和管理。尽管它们都遵循SQL标准,但在某些方...
    99+
    2024-03-11
    db sql区别 sql操作比较 sql语句
  • SQL中DML操作有哪些
    这篇文章给大家分享的是有关SQL中DML操作有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、SQL语言分类    DQ...
    99+
    2024-04-02
  • MongoDB中如何操作管道操
    MongoDB中如何操作管道操,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。$matchmatch中都可以使用,比如获取集合中所有author为”杜甫”的文档,如下:db....
    99+
    2023-06-19
  • flink如何将bathch dataset转换为sql操作
    这篇文章主要为大家展示了“flink如何将bathch dataset转换为sql操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“flink如何将bathch dataset转换为sql操作”...
    99+
    2023-06-02
  • Oracle数据库中如何使用逻辑操作符
    Oracle数据库中如何使用逻辑操作符,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Oracle数据库中逻辑操作符的使用方法详解,在WH...
    99+
    2024-04-02
  • Java中如何操作Redis
    这篇文章主要为大家展示了“Java中如何操作Redis”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何操作Redis”这篇文章吧。1.准备操作 1.1 新建工程1.2 sc...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作