首页 > 数据库 > 网络数据库用户管理

网络数据库用户管理

时间:2023-05-23 21:32:15浏览次数:35  
标签:对象 数据库 用户 网络 TABLE 权限 CREATE

一概述

        用户管理是网络数据库管理系统的常用要求之一,连接到数据库的每一个用户必须是系统的合法用户。用户是要使用网络数据库的管理系统,必须要拥有相应的权限,创建用户并授予权限权限是DBA的常用任务之一。下面以Oracle数据库为例,阐述网络数据库的用户管理。

二:配置身份验证

     用户是数据库的使用者。Oracle为用户提供了密码验证、外部验证、全局认证三种身份验证方法。其中密码验证是常用的方法。

2.1 密码验证

     当一个使用密码验证机制的用户试图进入数据库时,数据库会核实用户名是否有效,并验证于该用户在数据库中存储的密码是否相匹配。

     由于用户信息和密码都存储在数据库内部,所以密码验证用户也称为数据库验证用户。

2.2 外部验证

    当一个外部验证机制用户试图进入数据库时,数据库会核实用户名是否有效,并确信该用户并不在数据库中存储一个验证密码。

2.3 全局验证

    全局验证用户也不在数据库中存储验证密码,这种类型的验证是通过一个高级安全选项所提供的身份验证服务来进行的。

三:数据库用户管理

     用户的相关信息包括用户名和密码、用户的配置信息(包括用户的状态,用户的默认表空间等)、用户权限、用户·对应方案中的对象等。

     用户一般都是由DBA来创建和维护的。创建用户后,用户不可以执行任何Oracle操作,只有赋予用户相关的权限,用户才能执行相关权限允许范围内的相关操作。

3.1 创建用户

       用户访问数据库前必须要获得相应的授权的账号,创建一个新的用户(密码验证用户),最基本的创建用户语句为:


CREATE USER user;
IDENTIFIED BY passHord;

       CREATE USER,IDENTIFIED BY 为语法保留字。CREATE USER后面是创建的用户名字,而IDENTIFIED BY后面则是用户的初始密码。

       执行该语句的用户需要有创建用户权限,一般为系统DBA用户(如SYS和SYSTEM用户)。

3.2 修改用户

          用户创建完成后,管理员可以对用户进行修改,包括修改用户口令、改变用户默认表空间、临时表空间、磁盘配额及资源限制等修改用户密码语句为:

       ALTER USER user IDENTIFIED BY 新密码;

       此命令不需要输入旧密码,直接可以把用户的密码修改为新密秒,但前提是该用户已经登录了Oracle服务器。

3.3删除用户

        删除用户后,Oracle会从数据字典中删除用户方案及其所有对象方案,其语句为: 

       DROP USER user [CASCADE]

       当用户已经创建了相关的存储对象时,默认是不能删除用户的,需要先删除该用户下所有对象,然后才能删除该用户名。该操作也可以使用CASCADE选项来完成,CASCADE选项来完成,CASCADE表示系统先自动删除该用户下的所有对象,然后再删除该用户名。已经登录的用户是不允许被删除的。

四:数据库权限管理

        在Oracle服务器中,用户只有获得了相关的权限,才能执行该权限允许的操作。在Oracle中存在以下两种用户权限。

      <1>系统权限。允许用户在数据库中执行指定的行为,一般可以理解成比较通用的类权限。

       <2>对象权限。允许用户操作一个指定的对象,该对象是一个确切存储数据库中的命名对象。

4.1系统权限

       Oracle系统中包含100多种系统权限,其主要作用为:

       《1》执行系统端的操作,如CREATE SESSION是登录的权限,CREATE TABLE SPACE是创建表空间的权限。

       《2》管理某类对象,如CREATE TABLE 是用户创建表的权限。

        《3》管理任何对象,如CREATE ANY TABLE ,ANY关键字表明该权限的“权力”比较大,可以管理任何用户下的表。一般只有DBA可以使用该权限,普通用户是不应该拥有该类权限的。

          下面是部分系统权限例子:

(1)表

<1>CREATE TABLE(创建表)     

<2>CREATE ANY TABLE(在任何用户创建表)

<3>ALTER ANY TABLE (修改任和用户表的定义)

<4>DROP ANY TABLE(删除任何用户的表)

<5>SELECT ANY TABLE(选择任何用户的表中查询数据)

<6>UPDATE ANY TABLE(更改任何用户表的数据)

<7>DELETEM ANY TABLE(删除任何用户的表的记录)

(2)索引

<1>CREATE ANY INDEX(在任何用户下创建索引)

<2>ALTER ANY INDEX(修改任何用户的索引定义)

<3>DROP ANY INDEX(删除任何用户的索引)

(3)会话。

<1>CREATE SESSION (创建会话,登录权限)

<2>ALTER SESSION(修改会话)


(4)表空间。

<1>CREATE TABLE SPACE(创建表空间)

<2>ALTER TABLE SPACE(修改表空间)

<3>DROP TABLE SPACE(删除表空间)

<4>UNLIMTED TABLE SPACE(不限制任何表空间的配额)。

4.2  授予用户系统权限

      授予用户权限的语句为:

      GRANT系统权限TO  user[WITH ADMIN OFTION];

      WITH  ADMIN OPTION的含义是把该权限的管理权限也赋予用户。默认情况下,权限的赋予工作是由拥有管理权限的管理员来执行的。当权限被赋予其他用户后,其他用户获得该权限的使用权,可以使用在该权限允许范围内的相关Oracle操作,但用户并没有获得该权限的管理权,所以该用户没有权限把该权限在赋予其他用户。使用WITHADMINOPTION选项则可以获得授予普通用户管理权限的权限。

4.3回收系统权限

      回收系统权限的语句为:

     REVOKE系统权限FROM user;

     它只能回收使用了GRANT授权过的权限,权限被收回后,用户就失去了原权限的使用权和管理权。

4.4 对象权限

      对象权限的种类不是很多,但数量相当大,因为具体对象的数量很多。

    对于对象权限来说,表除执行的权限外,其余的对象权限都有;视图没有修改的权限(含在创建视图权限中),也不能基于视图来创建索引;序列只有修改和查询的权限;而存储过程则只有执行的权限。

    对象权限除了直接作用在某个对象外,还可以对表中的具体列设置对象权限。

      授予对象权限分类[(列名列表)]ON对象名TO user

      [WITH GRANT OPTION]

     授予对象权限的用户是对象的拥有者或者其他对象管理权限的用户(常为DBA)。也可以把对象的管理权限赋予其他用户,其语句为WIT H GRANT OPTION.

    回收对象权限的语句为:

     REVOKEED 对象权限种类[(列名列表)]ON 对象名 FROW user;

     对象的权限会级联回受,这一点同系统权限的级联回收策略不同。

·






























































标签:对象,数据库,用户,网络,TABLE,权限,CREATE
From: https://blog.51cto.com/u_15912723/6334802

相关文章

  • 如何接收用户事件_以Button点击为例
    如何接收用户事件_以Button点击为例JavaFX中与用户进行交互的方式可以通过事件的回调。我们可以给一个控件(比如Button)绑定一个事件回调函数,当相关事件触发时(比如Button被点击),JavaFX将调用这个回调函数。以Button为例,在我们创建好Button后,调用setOnAction方法为其设......
  • 不同数据库的格式化日期函数
    不同数据库的格式化日期MySql1、获取当前时间selectnow()2、日期格式化#年-月-日时:分:秒SELECTDATE_FORMAT(now(),'%Y-%m-%d%H:%i:%s')具体格式参考下面:格式描述%a缩写星期名(Sun..Sat)%b缩写月名(Jan..Dec)%c月,数值(0..12)%D带有英文......
  • 数据库之连接之外连接
    1、leftjoin是SQL语言中的查询类型,即连接查询。它的全称是左外连接(leftouterjoin),是外连接中的一种。2、Oracle中有三类OUTERJOIN--分别是LEFT,RIGHT和FULL。一个LEFTOUTERJOIN包含“左”表中的所有记录,即使它与在此连接中指定的“右”表并不存在任何匹配。3、RIGHTOUTE......
  • C# 读取网络上下行(不要使用性能计数器的方式)
    C#读取网络上下行有多种方式,其中有一种是使用System.Net.NetworkInformation命名空间中的NetworkInterface类和PerformanceCounter类,该方式其实读的是windows系统的性能计数器中的NetworkInterface类别的数据。方式如下:NetworkInterfacenetworkInterface=NetworkInterface......
  • druid 数据库密码加密
    cmd命令:1、切换的druid-0.2.9.jar包所在目录2、在命令行中执行如下命令:java-cpdruid-0.2.9.jarcom.alibaba.druid.filter.config.ConfigToolsyou_password即输出加密后密码3、<!--sql统计功能就不能用<propertyname="filters"value="stat"/>--><propertyname="......
  • MySQL数据库统计常用语句
    1、查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据容量(MB)',sum(truncate(index_length/1024/1024,2))as'索引容量(MB)'frominformation_schema.tablesgro......
  • 控件包含代码块(即 <% ... %>),因此无法修改控件集合(用户自定义控件中)
    https://www.cnblogs.com/zlfucku/archive/2011/09/05/2167943.html原因:就是runat中不能有<%%>这样的东西,不然就会报这个错误解决办法: 这两行拖到body里就好了,不要放在有headrunat=server的代码块内,不然就报这个错。......
  • Mysql 创建用户与授权
    Mysql创建用户与授权1.创建用户:CREATEUSER'username'@'host'[IDENTIFIEDBY'password'];username:要创建的用户名;host:代表地址;任何地址可以使用%IDENTIFIEDBY'password':设置密码,如果不写则为空密码eg:CREATEUSER'root'@'localhost'IDENTI......
  • sqlserver 创建表时,为何会出现不支持该后端版本设计数据库关系图或表的提示?
    https://www.null123.com/question/detail-2236078.html同事遇到的问题,查了下记录下:由于使用了错误的SSMS版本(SqlServerManagementStudio),这通常被报告为错误。使用为您的数据库版本设计的版本。您可以使用命令select@@version检查您实际使用的sqlserver版本。此版本的报......
  • 1万多贺卡祝福节日祝福ACCESS\EXCEL数据库
    你是否在春节只能复制别人的祝福短信来发送?你是否在节日期间为给朋友送祝福无从下手?你是否在特殊日子和朋友打不开对话的开头?其实,很多情况下我们都需要一堆不同与别的人祝福语,用在节日上、用在交际上等日常备用。今天这一份数据就是祝福语大全,有节日、祝福两大类,子分类有50多个。......