数据库 - 授权与回收安全性

计算机系统安全性

为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

 问题的提出
数据库的一大特点是数据可以共享
数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、
        市场需求分析、市场营销策略、销售计划、
        客户档案、医疗档案、银行储蓄数据

EC/TDI安全级别划分

B2以上的系统

还处于理论研究阶段

应用多限于一些特殊的部门,如军队等

美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准

CC

CC

提出国际公认的表述信息技术安全性的结构

把信息产品的安全要求分为

安全功能要求

安全保证要求

数据库安全性控制概述

非法使用数据库的情况

编写合法程序绕过DBMS及其授权机制

直接或编写应用程序执行非授权操作

通过多次合法查询数据库从中推导出一些保密数据

用户标识与鉴别

(Identification & Authentication)

系统提供的最外层安全保护措施

用户标识

口令

系统核对口令以鉴别用户身份

用户名和口令易被窃取

每个用户预先约定好一个计算过程或者函数

存取控制机制

组成

定义用户权限

合法权限检查

用户权限定义和合法权检查机制一起组成了 DBMS的安全子系统

常用存取控制方法

自主存取控制(Discretionary Access Control ,简称DAC)

C2级

灵活

强制存取控制(Mandatory Access Control,简称 MAC)

B1级

严格

自主存取控制方法

通过 SQL 的 GRANT 语句和 REVOKE 语句实现

用户权限组成

数据对象

操作类型

定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作

定义存取权限称为授权

授权与回收

一、GRANT
GRANT语句的一般格式:
       GRANT <权限>[,<权限>]...
       [ON <对象类型> <对象名>]
       TO <用户>[,<用户>]...
       [WITH GRANT OPTION];

语义:将对指定操作对象的指定操作权限授予指定的用户

GRANT

发出GRANT:

DBA

数据库对象创建者(即属主Owner)

拥有该权限的用户

按受权限的用户

一个或多个具体用户

PUBLIC(全体用户)

WITH GRANT OPTION子句:

指定:可以再授予

没有指定:不能传播

 [例1] 把查询Student表权限授给用户U1

      GRANT   SELECT
      ON   TABLE   Student
      TO   U1;
[例2] 把对Student表和Course表的全部权限授予用户U2和U3

      GRANT ALL PRIVILIGES
      ON TABLE Student, Course
      TO U2, U3;
[例3] 把对表SC的查询权限授予所有用户

     GRANT SELECT
     ON TABLE SC
      TO PUBLIC;
[例4] 把查询Student表和修改学生学号的权限授给用户U4
 
        GRANT UPDATE(Sno), SELECT
        ON TABLE Student
        TO U4;

对属性列的授权时必须明确指出相应属性列名
 [例5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

    GRANT INSERT
    ON TABLE SC
    TO U5
    WITH GRANT OPTION;
执行例5后,U5不仅拥有了对表SC的INSERT权限,
 还可以传播此权限:
 [例6] GRANT INSERT ON TABLE SC TO U6
        WITH GRANT OPTION;

 同样,U6还可以将此权限授予U7:
 [例7] GRANT INSERT ON TABLE SC TO U7;
  但U7不能再传播此权限。

二、REVOKE

授予的权限可以由DBA或其他授权者用REVOKE语句收回


REVOKE语句的一般格式为:
      REVOKE <权限>[,<权限>]...
      [ON <对象类型> <对象名>]
      FROM <用户>[,<用户>]...;
[例8] 把用户U4修改学生学号的权限收回

        REVOKE UPDATE(Sno)
        ON TABLE Student
        FROM U4;
[例9] 收回所有用户对表SC的查询权限

        REVOKE SELECT
        ON TABLE SC
        FROM PUBLIC;
时间: 2024-08-27 14:26:01

数据库 - 授权与回收安全性的相关文章

MySQL 授权,回收权限,查看权限

show GRANTS for [email protected];flush privileges;SHOW PROCESSLIST; #全局授权,回收权限GRANT ALL ON *.* TO 'testzzq'@'localhost';REVOKE ALL ON *.* FROM 'testzzq'@'localhost';flush privileges; #数据库级别,授权,回收权限GRANT ALL PRIVILEGES ON cs TO 'testzzq'@'localhost';

疑难杂症--SQL SERVER 2012下数据库内存异常回收

--=================================================================== --背景: 在一台SQL SERVER 2012 SP1(11.0.3000)服务器上,由于批处理请求较高,CPU使用率超过40%,于是开始各种调研.. 服务器情况: 服务器物理内存为128GB, 分配给SQL SERVER 115GB,Windows 可用物理内存为6GB左右 压力情况: 批处理请求超过30000+,有大量UPDATE和INSERT操作,C

CentOS6.4下Mysql数据库的安装与配置,导入数据库,授权远程ip

卸载掉原有mysql 因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库 [[email protected] ~]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉 [[email protected

MySQL数据库授权的两种方式

MySQL数据库授权的两种方式 方法一:通过grant命令创建用户并授权 grant命令简单语法如下: grant all privileges on dbname.* to [email protected] identified by 'passwd'; 列表说明如下: 说明:上述命令是授权localhost主机上通过用户username管理dbname数据库的所有权限,密码是passwd.其中,username,dbname,passwd可根据业务的情况修改. 举例:创建zd用户,对tes

【微信开发】01.数据库授权和连接

在新浪SAE上面搭建了一个WeiPHP框架应用(称作A),做了一个微信墙的功能,想通过一个前端web页面显示微信墙内容,而不是通过WeiPHP框架.这就需要将WeiPHP框架应用的数据库授权给这个web站点的应用(称作B). 1. 数据库授权 (1)进入数据库管理,点击跨应用授权 (2)将A应用的数据库授权给B应用,点击授权 2.编写B应用的连接数据库的脚本 (1)修改文件:index.php(2)参数含义: 主库域名 : SAE_MYSQL_HOST_M从库域名 : SAE_MYSQL_HOS

MySql数据库授权

数据库授权 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1.增加一个用户user001密码为123456,让他可以在任何主机上登录,并对所有数据库有查询.插入.修改.删除的权限.首先用以root用户连入MySQL,然后键入以下命令: mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by &qu

vivo面试学习2数据库授权

1.数据库授权 为用户授权 授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 1.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录: @>mysql -u root -p @>密码 1.2 首先为用户创建一个数据库(testDB): mysql>create database testDB; 1.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限): mysql>gr

Oracle 基本权限授权或者回收权限、解锁等权限配置

select * from dba_users; --查询数据库中的所有用户 alter user scott account lock; --锁住用户 alter user scott account unlock; --给用户解锁 create user 用户名 identified by  密码; --建立用户 grant connect to 用户名;--授权用户允许登录的权限 grant create tablespace to 用户名; --授权创建表空间权限 grant selec

数据库原理及应用-安全性和完整性约束

2018-02-21 17:40:14 导致数据库数据被破坏的原因有如下几个方面: 系统崩溃: 并发访问的控制不当: 人为的破坏(有意的,或无意的): 输入数据本身的错误: 第一,二项可以通过数据库恢复技术进行解决,第三项需要用到数据库安全性的保障,第四项毫无疑问需要进行数据的完整性约束. 一.数据库安全性 1)保护数据库中的数据不被非法访问 视图和查询语言的重写:例如用户只能查看和访问计算机学院的数据,那么在用户提交一条query的时候,系统将会自动的在WHERE子句上加上AND CS,用来对