数据库保护

DB Audit对银行等金融机构机密数据库的保护与审计 概述       数据库主要被用来作为机密数据的存储。然而,由于公司数据库中大量增长的存储数据,查找机密数据对审计人员和不熟悉数据库应用设计的内部控制部门带来了数据安全的挑战。DB Audit软件提供PCI,PII和银行数据发现工具,使他们能够快速查找和识别的数据库和含有这 阅读详情

目的和要求

1.了解数据库备份和还原的基本方法,掌握完全备份和还原的基本技术;

2.掌握SQL Server2000提供了三种封锁机制;

3.掌握SQL Server2000中有关用户、角色及操作权限的管理方法;

4.掌握约束、规则和默认值的概念及实施方法。

内容和步骤

一、数据库恢复

1.数据库的备份

SQL Server2000有数据库完全备份、数据库差异备份、事务日志文件备份、文件及文件组备份等四种形式。本实验主要介绍数据库完全备份。

1)  利用企业管理器进行备份

当完成备份设备的创建后,便可以进行数据库的备份。若没有创建任何备份设备,则打开备份数据库程序时,此时会提醒用户必须先创建备份设备。

l         在所创建的“数据库备份”项目上,单击鼠标右键,选择“备份数据库”

 


 

 

 

 

 

 

图1 选择“备份数据库”命令

 

l         打开“SQL Server2000 备份”属性设置页。

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

图2 “SQL Server2000 备份”属性设置页

l         示范“booksale”的备份。而且选择完整数据库备份的方式。

 

l         默认值为“文件名”的方式,更改为“备份设备”的方式。(学生帐户不能创建备份设备)

 

 

 

 

 

 

 

 

 

 

 

 


图3 选择备份目的

选择创建的“数据库备份”设备。选择设备后,按“确定”按钮

 

 

 

 

 


l   

 图4 选择备份设备

在最下面的“调度”项目中,设置备份计划,假设在“调度”前打勾,系统就会有一个默认的备份计划。

 

 

 

 

 图5 设置备份计划

 

l         除了系统默认值外,也可以按右下角的“更改”按钮,去改变备份时间。

 

 

 

 

 

 

 

 

 

 

 

 

 

图6 改变备份时间

l         可以看到系统调度的时间,同时也可以更改成自己的时间设置。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


图7 编辑作业调度

l         另外,也可以查看SQL Server2000 备份的“选项”属性设置页。在系统中的选项设置上,选择了  “ 检查媒体集名称和备份集是否到期时间”。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

图8 查看SQL Server2000 备份的“选项”属性设置页

l         经过前面步骤的设置,当我们按下“确定”按钮后,马上可以进行备份。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

图9 完成步骤设置

l         正在进行“营销”的备份

 

 

 

 

 

 

 

 

 

 

 

 


图10 正在进行备份

l         备份完成。

 

 

 

 

 

 

 

 

 


图11备份完成

学生可以备份文件,但不能创建备份设备。备份文件创建后,可以复制到其他地方,也可以改名。(

2)  利用Transact-SQL命令进行备份

备份数据库的命令的语法是:

DUMP DATABASE{dbname|@dbname_var}

TO dump_device1[,dump_device2[,…,dump_device32]]

[WITH options]

·dbname|@dbname_var指定要备份的数据库;

·dump_device1[,dump_device2[,…,dump_device32]]指定转储设备;

·options指定一些备份时使用的选项,如UNLOAD、NOUNLOAD等。

2.数据库的还原

1)     利用SQL Server2000 Enterprise Manager进行还原

l         选择“SQL Server2000企业管理器”的菜单中“工具”→“还原数据库”的选项。


 


 

 

 

 

 

 

图12 选择“还原数据库”的选项

 

l        

于是系统打开了“还原数据库”的设置项目页。

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

图13 “还原数据库”的设置项目页

l         首先,我们选择要还原的数据库(营销),然后再选择要还原哪一次备份。

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

图14 选择要还原哪一次备份

l         针对备份记录,在上一步中,可以按下“属性”按钮,查看更详细的备份记录。另外,也可以改变还原的备份设备。

 

 

 

 

 

 

 

 

 

 

 

 

 

 


图15 查看备份级属性

l        

下图为选择还原设备,这里选择数据库备份。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图16 选择还原设备

l        

接下来查看“还原数据库——选项”设置页。在此可以看到还原的数据库文件为“营销_Data.MDF”与“营销_Log.LDF”两个文件。必要时,可以选择“在现有的数据库上强制还原”。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图17 “还原数据库——选项”设置页

l         按下“确定”按钮后,SQL Server2000 便开始进行还原数据库的操作。

 

 

 

 

 

 

 

 

 

 

 


图18 开始还原数据库

l         还原数据库完成。

 

 

 

 

 

 

 

 

 

 


图19还原数据库完成

 

关于 权限问题:还原操作要求登录用户具有sysadmin和dbcreate的固定服务器脚色,方可进行。只有db_owner权限的用户是不能进行还原操作的。

 

2)用Transact-SQL命令进行还原

还原数据库的命令的语法是:

Restore DATABASE{dbname|@dbname_var}

From backup_device1[,backup_device2[,…,backup_device32]]

[WITH options]

·dbname|@dbname_var指定要还原的数据库;

·backup_device1[,backup_device2[,…,backup_device32]]指定备份设备;

·options指定一些还原时使用的选项,如UNLOAD、NOUNLOAD等。

 

二、并发控制(了解为主,不要求掌握)

1.SQL Server2000提供了三种封锁机制

为了保证数据的一致性,并且允许最大量的并发用户,SQL Server2000提供了三种封锁机制,即独占封锁、共享封锁和更新封锁。封锁的对象可以是表格、页或者记录。

1)共享封锁

共享封锁是为读操作设置的一种封锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。

2)更新封锁

当需要对一个记录或一组记录进行更新时 (只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的更新封锁或独占封锁。

3)独占封锁

独占封锁也叫排他封锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁,但不拒绝其他用户的一般读操作。     

所有的封锁都将在事务结束(提交或撤消)时自动释放。   

SQL Server2000 使用SELECT语句完成封锁操作,在指定选择的表的同时在FROM子句中指定对表所实施的封锁。

2.SQL Server2000的封锁命令

SQL Server2000的封锁操作是在相关语句的“WITH (table_hint)子句中完成的,可用在SELECT、INSERT、UPDATE、DELETE等语句中指定表级锁定的方式和范围。常用的封锁关键词有:

TABLOCK:对表施加共享锁,在读完数据后立即释放封锁,它可以避免读“脏”数据,但可能引起不可重复读问题。

HOLDLOCK:与TABLOCK一起使用,可将共享锁保留到事务完成,而不是在读完数据后立即释放,它可以保证数据的可重复读。

NOLOCK:不施加任何封锁,仅用于SELECT语句,它会引起读“脏”数据。

TABLOCKX:对表施加排它锁。

UPDLOCK:对表中指定元组施加更新锁,这时其他事务可对同表中的其他无组也施加更新锁,但不能对表施加任何锁。

3.SQL Server2000的隔离级别

SQL Server2000支持标准SQL中定义的4种隔离级别:

l         未提交读(READ UNCOMMITED):事务隔离的最低级别,仅可保证不读物理损坏的数据。

l         提交读(READ COMMITED):SQL Server2000的默认级别,可以保证不读“脏”数据。

l         可重复读(REPEATABLE READ):可以保证读一致性。

l         可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离,在该级别上可以保证并发事务均是可串行的。

    事务必须运行在可重复读或更高隔离级别上才可防止丢失更新

设置隔离级别的命令是:

    SET  TRANSACTION  ISOLATION  LEVEL

    {READ COMMITED | READ UNCOMMITED | REPEATABLE READ| SERIALIZABLE}

例1:对学生表Student实施一个共享封锁,并且保持到事务结束时再释放封锁,相应的命令是:

SELECT *  FROM  Student  (TABLOCK   HOLDLOCK)

例2:现在再来考虑一下火车票售票系统,显然采取更新封锁最为合适。

假设售票信息存放在关系R(日期,车次,座别,座位号,状态)中,其中座别说明是软卧(RW)、硬卧(YW)、软座(RZ)或硬座(YZ),状态表明车票是否售出,初值为NULL。

下面是相应的程序段:

DECLARE @d datetime,@t char(6),@s char(2),@n char(10)

 

BEGIN TRANSACTION

SELECT @n=座位号 FROM R (UPDLOCK)

      WHERE 日期 = @d AND车次 = @t AND 座别 = @s AND 状态 IS NULL

IF…

 

UPDATE R SET 状态 =“Y”

WHERE 座位号 = @n AND 日期 = @d

          AND 车次 = @t AND 座别 =@s

   

COMMIT TRANSACTION

ELSE

     ROLLBACK TRANSACTION

…

本程序段只包含了和封锁及更新有关的核心语句,其他语句都省略了。其中的SELECT语句查询并封锁一条车票记录,UPDATE语句完成更新操作。如果完成更新则提交事务并自动释放封锁,否则就撤消事务并自动释放封锁。

 

三、数据库的安全性控制

1.SQL Server2000的安全模式

SQL Server2000提供了三种安全管理模式,即标准模式、集成模式和混合模式,数据库设计者和数据库管理员可以根据实际情况进行选择。

SQL Server2000的默认安全模式是标准模式,在这种安全模式下,由SQL Server2000独立来管理自己的数据库安全。

集成安全模式是将Windows NT的安全管理集成到SQL Server2000下,即用户只要登录到Windows NT,就可以通过信任连接直接连接到SQL Server2000。也就是说,集成模式使用的是信任连接,Windows NT的用户就是SQL Server2000的用户。

设置SQL Server2000的安全模式可以在安装SQL Server2000时完成,也可以在安装后以系统管理员的身份注册,然后使用SQL Enterprise Manager工具的有关选项进行设置。如果选择的是标准模式或混合模式,则必须创建用户和用户组。

2.创建用户和用户组

如果选用的是集成模式,则在Windows NT下创建的用户就是SQL Server2000的用户;否则就必须在SQL Server2000下创建用户和用户组,这些工作可以在SQL Server2000 Enterprise Manager中完成,也可以利用sp_addgroup、sp_addlogin、sp_adduser等系统存储过程以命令交互方式来完成。

在安装SQL Server2000之初,只有两个用户,一个是sa(系统管理员),另一个是guest(系统安装时创建的一个可以对样板数据库作最基本查询的用户)。Sa作为系统管理员或数据库管理员,在SQL Server2000上有至高无上的权利,可以做任何事情。

1)为SQL Server2000增加用户

为SQL Server2000增加新的用户,可以执行系统存储过程sp_addlogin,它的格式如下:

Sp_addlogin login_id[,passwd[,defdb[,deflanguage]]]

其中:Login_id为注册标识或SQL Server2000用户名;

      Passwd为口令,默认口令是NULL,用户可以在任何时候使用;

      sp_password系统存储过程改变自己的口令;

      Defdb指定用户在注册时连接到的默认数据库,如果没有指定默认数据库,则默认数据库是master;

Deflanguage说明用户注册到SQL Server2000时使用的默认语言代码。

2)为数据库增加用户

    只要是数据库所有者,就可以指定数据库用户

    学生上机时,可以将邻桌用户作为自己的一般用户(即只有public)

数据库拥有者可以将访问或连接到自己的数据库的权限授予其他用户,即为自己的数据库增加新的用户。这可以用系统存储过程sp_adduser来完成,它的格式是:

sp_adduser login_id[,username[,grpname]]

3)使用组

创建组的系统存储过程是sp_addgroup,它的格式是:sp_addgroup grpname

4)口令

口令用来确认一个注册用户名是否正确,只有通过注册名和口令的验证才可以登录到SQL Server2000并连接到数据库。

系统管理员在创建SQL Server2000用户时可以同时为之分配一个口令,用户可以在任何时候利用系统存储过程sp_password来修改自己的口令,它的格式是:             

sp_password old_passwd,new_passwd[,login_id]

3.权限管理

在SQL Server2000上权限管理分为语句权限管理和对象权限管理两类。语句权限管理是对用户执行语句或命令的权限的管理;对象权限管理是系统管理员、数据库拥有者、数据库对象拥有者对数据库及其对象的操作权限的控制。

1)授权

SQL Server2000的授权包括语句授权和对象授权两类,语句授权决定被授权的用户可以执行哪些语句命令,对象授权决定被授权的用户在指定的数据库对象上的操作权限。

l         语句授权:学生上机时不能完成

语句授权的命令格式是:

     GRANT{ALL|statement_list}TO{PUBLIC|name_list}

·ALL即全部语句,只有系统管理员可以使用此选项,因为只有系统管理员可      以授予或收回CREATE DATABASE的权限;

·statement_list给出授权的语句列表,这些语句可以是CREATE DATABASE (如果执行这个语句的用户是系统管理员)、CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW、DUMP DATABASE和DUMP TRANSACTION等;

·PUBLIC说明这些语句的执行权限将授予所有的用户;

·name_list是数据库用户名或组名,说明这些语句的执行权限授予哪些用户或组。

   

SQL Server2000对每类用户都有特定的默认语句执行权限,如果要想执行默认语句权限之外的语句,则必须获得授权。

例1.系统管理员授予注册名为zhang的用户CREATE DATABASE的权限。

           GRANT CREATE DATABASE TO zhang

例2.数据库拥有者zhang将创建表和创建视图的权限授予用户名为lin的用户。

           GRANT CREATE TABLE,CREATE VIEW TO  lin

l         对象授权:学生上机可以完成 ,通过对所加入的用户权限的操作来体会安全性的控制  

数据库对象的授权命令格式是:

GRANT{ALL|Permission_list}ON{table_name[(colume_list)]|view_name[(column_list)]| stored_procedure_name|extended_stored_procedure_name}  

TO {PUBLIC|name_list}

其中:

·ALL说明将指定对象的所有操作权限都授予指定的用户;

·permission_list是权限列表,当授权对象是表或视图时,它还可以包括SELECT、 INSERT、DELETE和UPDATE;当授权对象的表时,它还可以包括 REFERENCES,该项允许被授权的用户建立外部关键字约束来引用其他的表; 当授权对象是存储过程时,这里只能是EXECUTE;当在授权的表或视图上指定 列时,这里只能是SELECT和UPDATE;

·table_name[(column_list)]给出在当前数据库要授权的表名,如果需要可以通过 column_list将授权限制到某些列;

·view_name[(colume_list)]给出在当前数据库要授权的视图名,如果需要可以通过 column_list将授权限制到某些列;

·stored_procedure_name或extenden_stored_procedure_name给出当前数据库要授权的存储过程或扩展存储过程名,在一条 GRANT语句中,只能对一个存储过程 或扩展存储过程授权;

·PUBLIC说明将这些对象的使用权限授予所有的用户;

·name_list数据库用户名或组名,说明将这些对象的使用权限授予哪些用户或组。 数据库对象的所有默认权限自然归数据库对象拥有者所有,他可以把对这些数据库对象的操作权限按照需要授予其他用户。

例3.将对student表的查询权限授予用户名为xu、li和wang的用户。

GRANT SELECT ON student TO xu,li,wang

例4.将对student表的插入和删除的权限授予用户名为wang的用户。

GRANT INSERT,DELETE ON student TO wang

例5.将对student表的age和grade列的修改权限授予用户名为wang的用户。

GRANT UPDATE ON student(age,grade) TO wang

例6.将执行存储过程sp_upd_student的权限授予用户名为wang的用户。

GRANT EXECUTE ON sp_upd_student TO wang

2)收回权限

授权是为了使被授权者能够执行某些命令或操作某些数据库对象,授权者在任何时候者可以收回对其他用户的授权,收回授权是数据库安全性控制的重要内容。收回授权的命令的REVOKE,同样分为收回语句授权和收回对象授权。

收回语句授权的命令格式是:

REVOKE {ALL|statement_list}FROM{PUBLIC|name_list}

其中各选项的含义同样相应的GRANT命令。

收回对象授权的命令格式是:

REVOKE{ALL|permission_list}

ON{table_name[(column_list)]|view_name[(column_list)]|

stored_procedure_name|extended_stored_procedure_name}

FROM {PUBLIC|name_list}

其中各选项的含义同相应的GRANT命令。

例7.从用户名为lin的用户收回创建表和创建视图的权限。

REVOKE CREATE TABLE,CREATE VIEW FROM lin

例8.从用户名为xu和li的用户收回对student表的查询权限。

REVOKE SELECT ON Student FROM xu,li

 

四、数据库的完整性控制

数据的完整性是指数据的正确性和有效性,它是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

数据完整性可以分为以下3类:

域完整性:是指一个列的输入有效性,是否允许为空值。

实体完整性:是指将行定义为特定表中的唯一实体。

参照完整性:也叫引用完整性,是指在输入或者删除记录时,保持表之间已经定义的关系。它涉及到多表之间数据一致性的维护。

1.约束的概念及实施

约束是强制数据完整性的第一选择。约束有:检查约束、缺省约束、唯一约束、非空约束、主键约束和外键约束等6种。

1)使用企业管理器实施约束

⑴ 为teacher表的 “职称”字段创建一个缺省约束,缺省值为‘讲师’

启用企业管理器,单击“数据库”、test、“表”,企业管理器在右边显示所有在test中的表。用鼠标右键单击要设置缺省表teacher,在系统弹出的快捷菜单中单击“设计表”,单击设置缺省值的字段,将弹出如图20所示窗体,在下边属性设置栏的默认值输入框中输入响应的默认值即可。

图20 Teacher 表结构创建

⑵ 为教工表teacher的“所在专业”字段创建一个检查约束,使得“所在专业”的值必须是‘计算机软件’、‘计算机体系结构’或‘计算机网络’之一。

在图21中,单击‘管理约束’图标,选择CHECK约束,将弹出下图所示对话框,

图21 “Check约束”选项卡视图

单击‘新建’按钮,系统给出默认的约束名,在约束表达式窗体输入约束条件 ([所在专业] = '计算机网络' or [所在专业] = '计算机系统结构'or [所在专业] = '计算机软件' ),然后单击‘关闭’,CHECK约束创建完毕。如要删除已创建的约束,只要选择要删除的约束再单击‘删除按钮’即可。

⑶ 将teacher表的教工号字段设置为主键

在图20中,用鼠标右键单击要设置主键的字段,在系统弹出的快捷菜单中选择‘设置主键’,单击‘关闭’按钮,主键设置完成。如要取消主键设置,只需在已设为主键的字段上单击鼠标右键,并在系统弹出的快捷菜单中单击‘设置主键’,即可取消此字段的主键设置。

⑷ 为teacher表的姓名字段创建唯一性说明

在图21中,单击‘索引/键’标签,弹出下图所示对话框,单击‘新建’按钮,系统给出默认的唯一性约束名,在‘列名’下拉框中选择要创建的唯一性约束的列姓名,再单击‘创建UNIQUE’复选框和‘约束’单选按钮。单击‘关闭’按钮,唯一性约束创建结束。如要删除已创建的唯一性约束,再单击‘删除’按钮即可。

图21 “索引/键”选项卡视图

⑸ 进入企业管理器,按下面表格创建教师教授课程表teacher_course。

教工号

教授课程

2111

数据库原理及应用

2112

大型数据库概论

2113

Unix操作系统

2114

数据结构

2115

汇编语言

将teacher_course表的教工号设置为外键,该外键参考表teacher中的主键教工号。

在图20中,鼠标右键单击‘关系’,系统将弹出窗体,单击‘新建’按钮,系统给出默认的关系名,选择要参考主键的表名teacher及表中的主键教工号,要设置外键的表名teacher_course及外键列名教工号,单击‘关闭’按钮,外键约束创建完成。

2)使用T-SQL语句实施约束

⑴ 创建教工表teacher的“所在专业”字段创建一个检查约束,使得“所在专业”的值必须是‘计算机软件’、‘计算机体系结构’或‘计算机网络’之一。

Alter table teacher

Add constraint Sjk_check

Check (所在专业 in ('计算机软件','计算机体系结构','计算机网络'))

⑵ 为teacher表的 “职称”字段创建一个缺省约束,缺省值为‘讲师’

Alter table teacher Add constraint default_zc

Default '讲师' for 职称⑶

⑶ 为teacher表的“姓名”字段增加一个唯一性约束

Alter table teacher Add constraint tt unique nonclustered (姓名)

⑷ 在企业管理器中去掉teacher表中教工号的主键约束,然后用T-SQL为教工号加入一个名字pkey的主键约束。

Alter table teacher Add constraint primarykey Primary key nonclustered (教工号)

⑸ 创建外键约束

为teacher_course建立外键依赖于teacher表的fk_t_c约束并录入数据检查外键的有效性。

Alter table teacher_course Add constraint fk_t_c Foreign key(教工号) References teacher(教工号)

⑹禁止及启用teacher的“所在专业”的CHECK约束,执行下面的脚本,禁止/启用teacher表的zy_check约束,然后向表中插入数据行或修改数据行,检查CHECK约束是否被禁止或启用。

Alter table teacher Nocheck constraint zy_check

2.默认值的概念及实施

默认值是数据库对象之一,它指定在向数据库中的表插入数据时,如果用户没有明确给出某列的值,SQL Server2000将自动指定该列使用默认值。

⑴ 使用企业管理器设定一个默认值

使用企业管理器创建已个默认的邮政编码字段,默认值为222000,具体步骤如下:

n         启动企业管理器,分别单击‘数据库’,‘test’;用鼠标右键单击‘默认’,在系统弹出的快捷菜单中单击‘新建默认’,系统将弹出如图22所示‘默认属性’窗体。在‘名称’对应的输入框中输入默认值的名称‘邮政编码’,在值对应的输入框中输入222000;单击‘确定’按钮,即完成默认值的创建。

图22 默认属性

n         将默认值绑定到teacher表的邮政编码字段,然后解除绑定。

在图22中,点击‘绑定’,选择待绑定的默认值,再点击‘绑定列’,选择待绑定的表和字段,最后点击‘确认’,可将默认值绑定到指定表的列,如图23所示:

图23 将默认值绑定到列

n         删除默认值邮政编码

删除默认值前必须解除该默认值的所有绑定:启动企业管理器,分别单击‘数据库’,‘test’;用鼠标右键单击‘默认’,再用鼠标右键单击右边窗格里的邮政编码默认值,在系统弹出的快捷菜单中单击‘删除’按钮即可。

⑵ 使用T-SQL语句设定默认值

为teacher表创建一个名为postdefault、值为222000的默认值。

CREATE DEFAULT 邮政编码 AS 222000

将默认值绑定到列

sp_bindefault postdefault,’teacher.邮政编码’

解除表teacher的邮政编码的默认绑定。

Sp_undindefault ‘teacher.邮政编码’

删除默认值postdefault

drop default postdefault

3.规则的概念及实施

规则是数据库对象之一。它指定向中某列插入或更新数据时,限制输入新值的取值范围。规则可以是值的清单、值的范围或值必须满足的条件。

1)使用企业管理器创建规则

n         使用企业管理器为teacher的教工号创建一个规则rule1,使rule1的值大于2000且小于4000。

启动企业管理器,单击‘数据库’、‘test’,用鼠标右键单击‘规则’,在系统弹出的快捷菜单中单击‘新建规则’,系统将弹出如图24所示‘规则属性’窗口;在‘名称’输入框中输入规则名称rule1,在‘文本’输入框中输入规则的文本:@教工号>=2000 and @教工号<=4000,单击‘确定’按钮,即可完成规则的创建。

图24 规则属性

n         将规则绑定到指定的字段上

在上图中,点击‘绑定’选择预绑定的规则,然后点击‘绑定列’图表,得到如图25所示的窗体,在‘表’中选择对应的表,然后在左边的窗格中选择欲被捆绑规定的列,点击‘添加’按钮,最后选择‘确定’,完成规则的绑定。

图25 将规则绑定到列

n         将规则rule1删除

    启动企业管理器,单击‘数据库’、‘test’,用鼠标右键单击‘规则’,用鼠标右键单击右边窗格里的规则rule1,单击‘删除’按钮即可。

2)使用T-SQL语句实施规则

n         用like语句为teacher表的教工号创建一个规则rule1,使rule1的值大于2000且小于4000。

create rule rule1 as @教工号>=2000 and @教工号<=4000

n         将规则rule1绑定到表teacher的教工号字段。

Sp_bindrule rule1,’teacher.教工号’ 

n         解除规则rule1到教工号的绑定

 sp_unbindrule rule1

n         将规则rule1删除

drop rule rule1

 

练习题

练习1:针对学生成绩管理数据库GM进行备份和还原。

练习2:添加一个数据库用户,使之拥有对数据库GM的一切权力,练习对其他用户的授权及权限收回。

练习3:根据以前创建一个教工表Teacher,完成下列操作:

 

(1)将其教工号设为主键,同时为性别字段创建DEFAULT约束,默认值为‘男’

(2) 用T-SQL创建默认的对象phone:CREATE DEFAULT phone AS ‘00000000’, 这个默认对象phone绑定到教工表的电话字段Tel上。

(3)取消默认对象phone的绑定并删除默认对象。

(4) 利用T-SQL创建规则YGH,使得教工号Tno必须在0到10000之间, 把规则YGH绑定到教工表的教工号字段Tno上。

 

练习4:数据库安全性练习

两个学生为一组(设名称为A、B,A为原来的数据库用户),对以前完成的student数据库进行安全性控制:

1、将B添加为A数据库的用户:sp_grantdbaccess ‘用户名’,....

2、B用户打开A的数据库进行简单的数据操作,能否进行?为什么?

3、授与B创建表的权限:grant 语句 to 用户名,B用户试验能否创建表?

4、收回B的权限

5、授与B具有对Student表的查询权与更新权,B用户试验。

6、收回B的权限

7*、添加一个新的数据库角色(sp_addrole 角色名),并将用户B添加到角色中

 

 
探索大数据领域数据仓库的隐私保护措施 数据仓库是大数据时代的“中央厨房”——它整合了企业的用户行为、交易记录、运营数据等核心资产,支撑着精准营销、用户画像、风险预测等关键业务。但这个“厨房”里的“食材”(用户隐私数据)却时刻面临“裸奔”风险:2021年顺丰快递信息泄露事件中,数百万用户的手机号、地址被非法获取;2022年某电商数据仓库遭攻击,用户银行卡号、支付记录被公开售卖……数据仓库的隐私保护不是“可选功能”,而是“生存底线”。 阅读详情

相关推荐

安装oracle 11g 保护Database Control时出错,Database Control已在非安全模式下启动

错误解决: 打开cmd C:\Users\lin>emctl status dbconsole Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to da tabase unique name. C:\Users\lin> C:\Users\lin>set oracle_sid=orc

sunshine901106的专栏 7003

MySQL-约束

/* 字段约束:字段的属性,在创建表时给定字段约束。 字段名、数据类型、长度 约束的位置:字段名 数据类型 约束1 约束2, 1.默认:default,在有效字段上设置默认值; 2.非空:NOT NULL,不允许为空值; 3.主键:primary key同一张表中主键必须唯一非空。让数据更安全; */ #default:字段名称 数据类型 default 默认值 CREATE TABLE student( id INT DEFAULT 0 ); SELECT * FROM student; -

qq1632047376的博客 1070

数据仓库中的隐私保护机制

本文探讨了数据仓库环境中匿名化方法的应用,分析了动态数据集的隐私攻击模型与现有隐私准则的适用性。研究重点包括不同匿名化点(如源、预物化、后物化)对数据效用的影响,以及k-匿名、l-多样性、m-不变性等机制在插入与删除场景下的表现。实验结果表明,集成后匿名化能显著提升数据效用,而隐私准则的选择直接影响信息损失与查询精度。

gaochao的博客 468

第二章 SQL Server数据库表管理

  数据库本身无法直接存储数据,存储数据是通过数据库中的表来实现的。 2.1 表相关的几个基本概念   在创建和管理数据库表之前,需要理解以下几个概念。 2.1.1 数据完整性   数据完整性是要求数据库中的数据具有准确性,准确性是通过数据库表的设计和约束来实现的。例如:在存储学生信息的表中,如果允许任意输入学员信息的话,则在同一张表中可能重复出现一个学员的信息;还有如果不对表中...

aciyopnq62376的博客 626

wpf入门第五篇 WPF with ECharts

前言 本文是wpf入门系列第五篇,面向有winform或者web前端基础的、并且也有C#基础的同学。 ECharts是百度团队开发的开源免费的js图表控件库,非常强大,文档齐全。WPF中使用图表,除了可以选择devexpress或者oxyplot之类的专为wpf开发的图表控件之外,还可以考虑使用 WebBrowser+ECharts 来完成复杂的图表展示,其展示效果不亚于前者。 本文介绍了 WP...

wf824284257的博客 1万+

SAP CO-PA数据传送避坑指南:销售开票与FI/MM记账的日常配置实操(含KEKF/KE4I/KEI2)

本文深入解析SAP CO-PA数据传送中的常见配置问题,特别是销售开票与FI/MM记账环节的实操避坑指南。通过KEKF/KE4I/KEI2等关键配置点的详细说明,帮助用户避免数据失真和重复记录,提升获利能力分析的准确性。文章结合实战案例,揭示官方文档未提及的'数据黑洞'形成机制,为SAP顾问提供实用的排雷手册。

weixin_26905487的博客 391

深入理解 SQL Server 2008 的锁机制

相比于 SQL Server 2005(比如快照隔离和改进的锁与死锁监视),SQL Server 2008 并没有在锁的行为和特性上做出任何重大改变。SQL Server 2008 引入的一个主要新特性是在表级控制锁升级行为的能...

ckjg72573的博客 619

西门子PLC与汇川SV660P伺服速度模式配置实战指南

本文详细介绍了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的配置实战指南。从硬件接线、伺服参数配置到TIA Portal软件组态和PLC程序编写,提供了全面的操作步骤和实用技巧,帮助工程师快速解决伺服系统调试中的常见问题,确保系统稳定运行。

weixin_30316097的博客 500

数据库第二次作业

教师表 teacher 字段名 数据类型 长度(字节数) 是否可null 默认值 主、外键 其他约束 备注信息 NO CHAR 4 主键 教师号 NA

RainstormGod的博客 333

Unreal5从入门到精通之初学者碰到解决不了的问题怎么办?

在学习Unreal的过程中,你曾陷入困境了吗?对于我来说,这种情况发生得比我愿意承认的要多得多。幸运的是,除了一般地在网上搜索之外,还有很多地方可以获得虚幻引擎的帮助。

TxNet 979

DISM进行系统修复,进度条卡在63.2%的解决方法

一时用不了软件,安装修复的时候也出现问题 DISM一直卡在63.2%,等了好久时间,直接强制退出寻找最终的解决方案

码农研究僧的博客 1万+

实验四 数据库安全性实验

实验四

m0_53718303的博客 3103

Challenge 6 - OSCP C

开放了161端口,直接snmpbulkwalk扫描得到账号密码试了那几个web端口,发现可以登录8083的vesta,但是需要用户名大写Jack接着登录之后里面可以创建计划任务,直接弄个反弹shell,一分钟回弹。得到shell后,运行linpeas.sh提供了几个可能的漏洞,挨个试一下。

羽的博客 4139

oracle database firewall 配置 保护 db,DB360 数据库全面保护一体机解决方案.pdf

DB360 数据库全面保护一体机解决方案.pdfDB360 数据库全面保护一体机解决方案Tech SC2015-10Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |Agenda1 DB360背景2 DB360概述3 架构及功能4 方案实施5 案例分享Copyright © 2015, O...

weixin_42415059的博客 321

聊聊5G RedCap与eRedCap

而eRedCap作为R18引入的升级版本,进一步将峰值速率限制为10Mbps,仅支持FR1频段,通过减少物理资源块(PRB)数量和优化休眠机制,实现了更低的功耗和成本,成为NB-IoT/LTE-M的理想升级路径。RedCap与eRedCap的出现,正是为了填补“中间地带”—它们既具备高于mMTC的传输速率(接近LTE Cat 4水平),又能实现传统5G NR无法企及的低功耗与低成本,完美适配智能电表、工业网关、智能穿戴设备等“中等需求”物联网设备。时延则低至50ms以下,满足工业机械远程控制的实时性需求。

asd199086的博客 1745

PCL RANSAC拟合空间圆【2026最新版】

RANSAC三维点云空间3D圆拟合。博客长期更新,本文最新更新时间为:2026年4月13日。代码在PCL1.15.0中测试通过

点云侠的博客 7455

oracle database firewall 配置 保护 db,Oracle DB control配置启动

今天打算启用一下Oracle Database 11g的Database Control,发现初始并未安装:[Oracle@test126 ~]$ emctl startEM Configuration issue. /opt/Oracle/product/11.1.0/test126.hurray.com.cn_dodd not found.遇到这类问题,可以通过重新配置,来创建EM的配置文件:...

weixin_39602569的博客 458

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Chat2DB备份恢复:数据库灾难恢复与数据保护机制

在数字化时代,数据库已成为企业核心资产的重要载体。一次意外的数据丢失可能导致数百万的损失,甚至威胁到企业的生存。Chat2DB作为一款智能数据库管理工具,提供了完善的备份恢复机制,帮助用户构建可靠的数据保护体系。 > ???? **关键数据**:根据行业统计,60%的中小企业在遭遇重大数据丢失后6个月内倒闭,而拥有完善备份恢复机制的企业存活率提高至85%。 ## Chat2DB备份恢复架构设计 ...

gitblog_00275的博客 645

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

oracle database firewall 配置 保护 db,Oracle数据库解决方案推介.pdf

Oracle数据库解决方案推介Oracle渠道咨询部1Agenda . 数据库容灾解决方案. 数据库审计解决方案. 数据库性能优化解决方案. 跨数据库移植解决方案. GIS解决方案2什么是最大高可用体系架构(Maximum AvailabilityArchitecture)?3高可用系统面临的业务问题三个 维度? 数据? 任意一个故障发生时,是否会出现数据丢失?? 时间? 任意一...

weixin_27282525的博客 224

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据仓库的安全性和隐私保护

1.背景介绍 数据仓库是一种用于存储和管理大量结构化数据的系统,它广泛应用于企业、政府和组织等各种领域。随着数据仓库的普及和发展,数据的安全性和隐私保护成为了一个重要的问题。数据仓库中存储的数据通常包括敏感信息,如个人信息、财务信息、商业秘密等,如果这些数据被泄露或被不当使用,将导致严重后果。因此,保障数据仓库的安全性和隐私保护对于企业、政府和组织等各种领域来说是非常重要的。 2.核心概念与联...

AI天才研究院 1627

Chat2DB安全配置手册:保护数据库连接与数据隐私的最佳实践

在数字化时代,数据库安全已成为企业数据保护的核心环节。Chat2DB作为一款智能SQL客户端和数据管理工具,连接着企业的核心数据资产。不当的安全配置可能导致敏感数据泄露、SQL注入攻击、未授权访问等严重安全事件。 本文将深入探讨Chat2DB的安全配置最佳实践,帮助您构建坚固的数据安全防线。 ## 一、Chat2DB安全架构概览 ### 1.1 安全组件架构 ```mermaid grap...

gitblog_01049的博客 726

数据仓库安全与隐私保护

1.背景介绍 数据仓库安全与隐私保护是当今数据管理和处理领域的一个重要话题。随着数据的规模和价值不断增加,数据仓库成为了企业和组织的宝贵资源。然而,这也吸引了黑客和盗用者的注意力,导致数据安全和隐私问题日益严重。因此,保护数据仓库的安全和隐私成为了紧迫的任务。 在本文中,我们将讨论数据仓库安全与隐私保护的背景、核心概念、算法原理、具体操作步骤、数学模型公式、代码实例以及未来发展趋势与挑战。 ...

AI天才研究院 806

oracle加密ted的公开,如何修改数据库 保护模式 为unportected

Step 1 If you are upgrading the protection mode, perform this step.Perform this step only if you are upgrading the protection mode (for example, from maximum performance to maximum availability mode)....

weixin_39732027的博客 206

Rails_db安全最佳实践:保护你的数据库访问安全

Rails_db作为一款强大的Rails数据库查看器和SQL查询工具,在提供便捷数据库管理功能的同时,也面临着潜在的安全风险。本文将分享8个实用安全策略,帮助开发者在享受rails_db带来的便利时,有效保护数据库访问安全,避免敏感数据泄露和未授权操作。 ## 1. 启用HTTP基本认证:第一道防线 HTTP基本认证是保护rails_db访问的基础措施。通过在应用控制器中配置认证机制,可以有效

gitblog_00547的博客 478

五个小技巧告诉你如何保护MySQL数据仓库

 五个小技巧告诉你如何保护MySQL数据仓库 MySQL 数据仓库 数据集成 阅读2618

java_2017_csdn的博客 436

db安全最佳实践:保护数据库凭证与快照数据的完整指南

db作为一款数据库版本控制工具,允许用户通过命令行保存、恢复和归档数据库快照。在使用过程中,保护数据库凭证和快照数据的安全至关重要,以下是一套完整的安全最佳实践指南。 ## 数据库凭证保护策略 数据库凭证是访问数据库的关键,一旦泄露,可能导致严重的数据安全问题。在db中,凭证信息通常存储在特定的配置文件中。 ### 凭证文件的安全存储 db会将数据库连接密码以明文形式存储在文件中,但该文件

gitblog_01196的博客 438
上一篇: 设计模式之二:Adapter(适配器模式)
下一篇: 接口成员的显示实现
NETZHOU
博客等级 码龄24年 10粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值