- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四通过SQL进行数据完整性控制.
实验报告
实验目的:
熟悉通过SQL进行数据完整性控制的方法。
实验内容和要求:
建立表,考察表的生成者拥有该表的哪些权限。
使用SQL 的grant 和revoke命令对其他用户进行授权和权力回收,考察相应的作用。
建立视图,并把该视图的查询权限授予其他用户,考察通过视图进行权限控制的作用。
完成实验报告。
实验平台:
数据库管理系统:SQL Server 或MySQL
操作方法与实验步骤及结果
1、建立表,考察表的生成者拥有该表的哪些权限。
说明:以下实验在Workbench中完成。
首先以root用户登录,新建一个用户sherry,密码是12345:
mysqlgrant usage on *.* to sherry@localhost
mysqlidentified by 12345 with grant option;
查看sherry@localhost的权限:
mysqlshow grants for sherry@localhost;
返回:
GRANT USAGE ON *.* TO \sherry\@\localhost\ IDENTIFIED BY PASSWORD \*00A51F3F48415C7D4E8908980D443C29C69B60C9\ WITH GRANT OPTION
这里WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。
刷新权限:
mysqlflush privileges;
0 row(s) affected
查看用户表,可以看到多了一个名为sherry的用户:
mysqlselect host,user,password from mysql.user;
4 row(s) returned
2)用户sherry登录数据库:
3)在test数据库中用用户sherry建立表格,考察其权限:
use test;
0 row(s) affected 0.000 sec
create table stest( s_id CHAR(4), s_name CHAR(10));
0 row(s) affected 0.827 sec
4)向表格中插入数据成功,该用户对其创建的表格具有插入权限
5)查看表中数据成功,该用户对其创建的表格具有查看权限
6)更新表中数据,但这时出现了一个小问题:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences - SQL Queries and reconnect.
使用安全更新模式的时候update语句必须使用一个关键字列属性来限定更新的范围。如果不使用关键字列来限定范围或更新所有记录的时候就不能用安全更新模式。
解决办法是执行以下语句设置为非安全更新模式.
mysql有个叫SQL_SAFE_UPDATES的变量,为了数据库更新操作的安全性,此值默认为1,所以才会出现更新失败的情况。
解决办法是执行以下语句设置为非安全更新模式.
SET SQL_SAFE_UPDATES=0;
再次更新表中数据,修改成功,说明sherry对其创建的表格具有修改的权限。
7)删除表中数据:
8)删除表格stest:
综上,表格的生成者对表格具有插入、查看、修改、删除的权限。
2、使用SQL 的grant 和revoke命令对其他用户进行授权和权力回收,考察相应的作用。
1)再次以root用户登录
2)对sherry赋予branch表格的查看权限:
3)以sherry账号登录,查看branch表格内容,成功:
4)如果是查看account表格,因为sherry不具有权限,因此被拒绝:
Error Code: 1142. SELECT command denied to user sherry@localhost for table account
5)试图向branch表格中插入数据,又被拒绝:
insert into branch values(First Bank,Manhattan
Error Code: 1142. INSERT command denied to user sherry@localhost for table branch
6)修改数据被拒绝:
文档评论(0)