数据库——SQL-SERVER练习(6) 数据库安全性
一、实验准备
(1)运行SQL-SERVER服务管理器, 启动服务
(2)运行查询分析器, 以DBA身份登录数据库服务器:
用户名sa, 密码123456
(3)打开CREATE-TABLE.SQL并执行, 建立有关表.
“CREATE-TABLES.SQL”文件 https://www.cnblogs.com/wkfvawl/p/10843788.html
二 实验内容
1. 建立图书管理有关表,要求有完整性约束(实体,参照,用户定义):
注意: 外码与对应主码的类型一致!
出版社( 出版社号, 出版社名) 主码?
PUBLISHER(PNO,PNAME)
图书(书号,书名,价格,作者, 出版社号) 主码?外码?
BOOK(BNO,TITLE, PRICE, AUTHOR , PNO)
读者(读者号,姓名,性别,年龄)主码?
READER(RNO,NAME, AGE, SEX)
借阅(读者号,书号,借日期,还日期) 日期类型DATETIME,主码?外码?
LOAN(RNO, BNO, LOANDATE, RETURNDATE)
数据类型:
CHAR(n) 字符型
INT 整型
NUMERIC ( 精度,小数位数) 实型 精度是总有效位数
DATETIME 日期型
建立PUBLISHER的语句截图:
- CREATE TABLE PUBLISHER
- (
- PNO CHAR() PRIMARY KEY,
- PNAME CHAR() NOT NULL
- )
建立BOOK的语句截图:
- CREATE TABLE BOOK
- (
- BNO CHAR() PRIMARY KEY,
- TITLE CHAR() NOT NULL,
- PRICE NUMERIC(,) NOT NULL,
- AUTHOR CHAR() NOT NULL,
- PNO CHAR() REFERENCES PUBLISHER(PNO)
- )
建立READER的语句截图:
- CREATE TABLE READER
- (
- RNO CHAR() PRIMARY KEY,
- RNAME CHAR() NOT NULL,
- AGE INT NOT NULL,
- SEX CHAR() CHECK (SEX IN ('男','女'))
- )
建立LOAN的语句截图(约束还书日期>=借书日期,
(CHECK约束涉及多个列, 用元组级CHECK实现)
- CREATE TABLE LOAN
- (
- RNO CHAR(),
- BNO CHAR(),
- LOANDATE DATETIME,
- RETURNDATE DATETIME,
- PRIMARY KEY(RNO,BNO),
- FOREIGN KEY (RNO) REFERENCES READER(RNO),
- FOREIGN KEY (BNO) REFERENCES BOOK (BNO),
- CHECK (RETURNDATE>=LOANDATE)
- )
2. 为用户 'ZhangPing' 创建了一个密码为'Rose'的 SQL Server 登录
语法格式: EXEC sp_addlogin '用户名', '密码'
- EXEC sp_addlogin 'ZhangPing', 'Rose'
3. 将用户 ZhangPing 添加到当前数据库
语法格式: EXEC sp_adduser '用户名'
- EXEC sp_adduser 'ZhangPing'
4. 将PUBLISHER表的查询权,插入权授予PUBLIC
(注意SQL SERVER与教材不同:授权语句中要去掉关键字TABLE 一次只能对一个表授权)
- GRANT SELECT , INSERT
- ON PUBLISHER
- TO PUBLIC
5. 将BOOK所有权授予ZhangPing
- GRANT ALL
- ON BOOK
- TO ZhangPing
6. 将READER的查询权授予ZhangPing
- GRANT SELECT
- ON READER
- TO ZhangPing
7. 将LOAN的插入权删除权授予ZhangPing
- GRANT SELECT,DELETE
- ON LOAN
- TO ZhangPing
8. 将READER的查询权修改权授予ZhangPing
- GRANT SELECT,UPDATE
- ON READER
- TO ZhangPing
9. 将LOAN的删除权从ZhangPing收回
- REVOKE DELETE
- ON LOAN
- TO ZhangPing
10重新以ZhangPing登录 ( 查询分析器选择文件菜单的”连接”, 输入用户名ZhangPing, 密码Rose)
登录后, 注意将当前数据库选择为”STUDB”。
登录后更改密码, 将密码'Rose'改为 'coffee'
格式: EXEC sp_password '旧密码', '新密码'
- EXEC sp_password 'Rose', 'coffee'
11. 对PUBLISHER插入1行数据。
对BOOK插入1行数据
SQL语句执行截图:
- INSERT
- INTO PUBLISHER(PNO,PNAME)
- VALUES('','清华大学出版社')
- INSERT
- INTO BOOK
- VALUES('','数据库系统概论',42.00,'王珊,萨师煊','');
12. 查询BOOK所有数据 。
- SELECT *
- FROM BOOK
13. 查询LOAN所有数据, 报错(未被授权查询)
拒绝了对对象 'LOAN'(数据库 'STUDB',所有者 'dbo')的 SELECT 权限。
14. 插入一行READER数据, 报错(未被授权查询)
拒绝了对对象 'READER'(数据库 'STUDB',所有者 'dbo')的 INSERT 权限。
15. 建立一个班级表CLASS, 有班号,班名列, 报错(无权建表)
服务器: 消息 262,级别 14,状态 1,行 1
在数据库 'STUDB' 中拒绝了 CREATE TABLE 权限。
16、重新以DBA登录 (注意当前数据库是STUDB)
对STUDENT表的Sdept建立普通索引
- CREATE INDEX STUDEPT ON STUDENT(SDEPT)
17、对COURSE表的CNAME建立唯一索引
SQL语句执行截图:
- CREATE UNIQUE INDEX COURSENAME ON COURSE(CNAME)
数据库——SQL-SERVER练习(6) 数据库安全性的更多相关文章
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- SQL Server 2008 R2数据库镜像部署
概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在 ...
- SQL Server 维护计划实现数据库备份(Step by Step)(转)
SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server ...
- SQL Server 维护计划实现数据库备份(Step by Step)
转自:http://www.cnblogs.com/gaizai/archive/2011/11/18/2254445.html 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSM ...
- 第七篇 SQL Server安全跨数据库所有权链接
本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- SQL Server 2005恢复数据库详细图文教程
不少需要用到sql2005的程序,有很多新手还是会操作,这里写个详细的图文教程送个菜鸟们,高手请飘过.适用于独立主机的朋友使用,如果你还没安装,请按照这个教程来安装 SQL Server 2005图文 ...
- 【译】第七篇 SQL Server安全跨数据库所有权链接
本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- SQL Server 2008 R2数据库镜像部署图文教程
数据库镜像是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中 概述 “数据库镜像”是一种针对数据库高可用性的基 ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- 如何修改SQL Server 2008 R2数据库的内存
本篇经验将和大家介绍如何修改SQL Server 2008 R2数据库的内存,希望对大家的工作和学习有所帮助! 工具/原料 SQL Sever 2008 R2数据库已安装 方法/步骤 1 打开 ...
随机推荐
- IT兄弟连 HTML5教程 HTML5表单 新增的表单属性3
9 novalidate novalidate是属性规定在提交表单时不应该验证form和input域.novalidate属性适用于的<input>类型有:text.search.url ...
- 【algo&ds】9.拓扑排序、AOV&AOE、关键路径问题
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性 ...
- win7怎么使用远程桌面连接(win10类似,同样适用)
win7使用远程桌面比mac要简单多了,只需在桌面点击“开始”,找到并打开“附件”,点击“远程桌面连接”即可 mac使用远程桌面连接:https://www.cnblogs.com/tu-071 ...
- Idea2019激活码
此教程仅用作个人学习,请勿用于商业获利,造成后果自负!!! 此教程已支持最新2019.2版本 此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: idea官网下载地址:http:/ ...
- [IDA] 自动下载符号
当现实无法自动下载符号时,看下面交互窗口,提示安装 VC++ 2008. 安装成功之后就会自动下载符号.
- centos7.2安装及管理docker
使用的操作系统是是centos7.2,按照官方的推荐的配置,把linux内核升级到3.8以上.安装步骤如下: 1.升级内核版本(包含aufs)cd /etc/yum.repos.dwget http: ...
- 50行Python代码实现视频中物体颜色识别和跟踪
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 机器学习与统计学 PS:如有需要Python学习资料的小伙伴可以加 ...
- java版本的Kafka消息写入与读取
安装zookeeper: https://www.cnblogs.com/guoyansi19900907/p/9954864.html 并启动zookeeper 安装kafka https://w ...
- 如何在父级下访问v-slot的值——vuejs
关于作用域插槽v-slot的用法可以先看看文档 https://cn.vuejs.org/v2/guide/components-slots.html#%E4%BD%9C%E7%94%A8%E5%9F ...
- HTTP中的Accept-Encoding、Content-Encoding、Transfer-Encoding、Content-Type
Accept-Encoding和Content-Encoding Accept-Encoding和Content-Encoding是HTTP中用来对采用何种压缩格式传输正文进行协定的一对header. ...