oracle实现新建用户并授权

 更新时间:2026年01月07日 09:12:39   作者:小七.布灵  
本文主要介绍了在Oracle数据库中创建、删除用户以及授权角色的方法,用户可以通过system或sys用户创建其他用户,并且可以更改密码或删除用户,系统提供了三种标准角色:connect、resource和dba,分别赋予不同的权限,用户还可以创建自定义角色,并为其分配权限

在日常使用数据库中,程序员和数据库管理员的权限并不是一致的。我们有时候需要对不同的使用者新建不同的用户并且授予不同的权限。

1、创建用户

oracle内部有两个建好的用户:system和sys。

用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。

在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。

语法[创建用户]: create user 用户名 identified by 口令[即密码];

例子: create user test identified by test;

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

例子: alter user test identified by 123456;

2、删除用户

语法:drop user 用户名;

例子:drop user test;

若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

语法: drop user 用户名 cascade;

例子: drop user test cascade;

3、授权角色

oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

讲解三种标准角色

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用户拥有

授权命令

语法: grant connect, resource to 用户名;

例子: grant connect, resource to test;

撤销权限

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

例子: revoke connect, resource from test;

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

除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。

用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。

创建角色

语法: create role 角色名;

例子: create role testRole;

授权角色

语法: grant select on class to 角色名;

例子: grant select on class to testRole;

注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限

删除角色

语法: drop role 角色名;

例子: drop role testRole;

注:与testRole角色相关的权限将从数据库全部删除

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • oracle中的一些常用函数及示例

    oracle中的一些常用函数及示例

    这篇文章主要给大家介绍了关于oracle中的一些常用函数及示例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • oracle数据库的删除方法详解

    oracle数据库的删除方法详解

    这篇文章主要介绍了oracle数据库的删除方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Oracle删除archivelog文件的正确方法

    Oracle删除archivelog文件的正确方法

    Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间。那么如何定期正确删除archivelog文件呢?今天小编给大家介绍下
    2017-02-02
  • 一文详解Oracle中RAC的用法

    一文详解Oracle中RAC的用法

    Oracle RAC(Oracle Real Application Server, Cluster)是一种分布式数据库解决方案,本文就将详细给大家介绍一下Oracle RAC的知识点及用法,感兴趣的同学可以参考阅读
    2023-06-06
  • 解析一个通过添加本地分区索引提高SQL性能的案例

    解析一个通过添加本地分区索引提高SQL性能的案例

    今天接到同事求助,说有一个select query,在Oracle上要跑一分多钟,他希望能在5s内出结果,以下就是解决这个问题的方法,需要的朋友可以参考下
    2013-07-07
  • Oracle动态交叉表生成

    Oracle动态交叉表生成

    Oracle动态交叉表生成...
    2007-03-03
  • Oracle开发之分析函数总结

    Oracle开发之分析函数总结

    本文是对Oracle中分析函数做的总结,主要总结了前几篇关于分析函数、窗口函数、报表函数文章的内容,需要的朋友可以参考下。
    2016-05-05
  • Oracle基础多条sql执行在中间的语句出现错误时的控制方式

    Oracle基础多条sql执行在中间的语句出现错误时的控制方式

    今天小编就为大家分享一篇关于Oracle基础多条sql执行在中间的语句出现错误时的控制方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 利用PL/SQL从Oracle数据库导出和导入数据

    利用PL/SQL从Oracle数据库导出和导入数据

    这篇文章主要为大家详细介绍了利用PL/SQL从Oracle数据库导出数据和导入数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Access2000迁移到Oracle9i要点

    Access2000迁移到Oracle9i要点

    Access2000迁移到Oracle9i要点...
    2007-03-03

最新评论