SQL用户权限总结 - sql server 2012数据库基础-用户管理及权限管理-实验报告

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQL用户权限总结 - sql server 2012数据库基础-用户管理及权限管理-实验报告

这是大三第一学期《数据库基础》的实验报告,总共15个实验,前12个百度文库都有,后面三个网上找不到都是我自己花了很多时间琢磨出来的,希望对大家,以及将来的我有所帮助!

主要是概念问题,先是进入数据库所必须的登入用户,然后每个登入用户必须要有其下的数据库用户,每个数据库用户必须要有权限,权限具体内容由服务器角色提供。权限具体内容可以使用系统自带的服务器角色,也可以自定义。

思路很绕,大概有点理解,就是那种层次结构的感觉。


全部总结链接

SQL基础   (数据库、表、数据的增删改查、视图相关,以及所有实验报告源代码)

游标 (类似C++ 的 指针)

存储过程(类似 C++ 的自定义函数)

触发器 (类似 自定义的陷阱,或者说是监听器,满足某个条件了执行某个方法)

用户权限及权限管理 (类似Windows的多用户管理)

并发控制 (了解多个用户同时对数据造成错误的情况 和 解决方法)

数据恢复(当数据库数据丢失,相应的解决方法)

课程名称  数据库基础            

实验项目   实验13 用户管理及权限管理      

 

实验要求

(1)以系统管理员身份完成如下实验。

  • 建立3个不同名称的注册用户.
  • 使用ALTER LOGIN命令对建立的注册用户用不同的修改.
  • 建立一个数据为管理员用户

(2)以数据为管理员身份完成如下实验。

  • 根据已有的注册用户建立几个当前数据库的用户。
  • 使用ALTER USER命令修改部分用户设置。
  • 建立若干角色,部分角色指定基他用户管理。
  • 授权一些用户可以创建表等数据库对象。
  • 完成角色管理及其他授权管理

(3)以下实验由若干学生一组共同完成。

  • 每个用户有建立对像的权限,各自建立自已的对象(如表和视图等)。
  • 各用户之间就表或视图的查询、修改、删除、插入等互相授权,在授权过程中体会GRANT命令中WITH GRANT OPTIN短语的作用。
  • 分情况收回授权,并体会REVOKE命令中GRANT OPTION FOR 和CASCADE短语的作用

(4)在实验报告中要给出具体的操作要求和过程,并针对各种情况做出具体的分析和讨论。


实验过程

关于用户权限的概念性问题和相关SQL代码研究了好久,总共尝试了三遍,每次做都有新的理解,下面为最后一次的理解:

最重要的就是概念性问题,首先对其中的概念总结一下:

 

登入用户在SQL server 2012启动的时候需要登入的用户,登入用户必须要用数据库用户,否则无法登入。如下图所示:

服务器角色书本154页,相当于java中“类”的概念。可以使用系统预定义的,也可以自己创建自定义权限的角色。

数据库角色书本155页,相当于java中“对象”的概念。当一个数据库角色和服务器角色“连接”起来,那么这个数据库角色就含有该服务器角色所拥有的权限。

 

需要用到的函数:

sp_addrole函数在书本156页,用来创建新数据库角色,参数前者为数据库角色名称,后者为只读权限

sp_addrolemember函数在书本157页,用来连接数据库角色和数据库用户

 

题目1.1:建立3个不同名称的注册用户

图 1 创建三个用户,属性包括 用户名密码 以及默认登入的数据库

这个时候创建的这三个用户,还无法登入,因为还没有打开“学生管理系统”数据库的权限,如果登入则显示:

 

题目1.2:使用ALTER LOGIN命令对建立的注册用户用不同的修改

图 2 分别修改三个用户的 用户名 和 密码

注:此题主要展示一下修改用户名和密码的语法,实际上没有修改,对后面过程没有影响

 

题目1.3:建立一个数据为管理员用户

图 3 把zwz01用户设置为sysadmin(书本154页)管理员,可以做任何事情

但是这个管理员用户下面没有数据库用户,还是不能登入:

 

题目2.1:根据已有的注册用户建立几个当前数据库的用户。

 

图 4  分别创建 两个 数据库用户

其中sp_addrole函数在书本156页,用来创建新数据库角色,参数前者为数据库角色名称,后者为只读权限

代码相当于使用系统的“只读”类,创建两个java对象,分别是zwz01和zwz02

这个zwz01和zwz02和登入用户的zwz01无关,这里重名了,以后有机会再改

 

题目2.2:使用ALTER USER命令修改部分用户设置

图 5   分别修改 两个用户 的 用户名

注:只是展示语法,实际上没有修改,对后面过程无影响

 

 

题目2.3:建立若干角色,部分角色指定基他用户管理

图 6建立两个角色‘zwzdatabase1’、‘zwzdatabase2’,和数据库用户“连接”起来

 

 

题目2.4:授权一些用户可以创建表等数据库对象(创建表、视图权限)

图 7  授权zwz01可以创建表

注:主要是展示语法,具体例子在第三大题

 

题目2.5完成角色管理及其他授权管理

图 8 红框内是查看数据库角色zwzdatabase1的用户,即zwz01

下方授权代码是授予zwz01用户相关权限

第三大题:

在完成第三大题之前,我们先创建三张表格,用于授予权限

图 9 创建三张表格

图 10 创建三个登入用户 分别是user01~03

此时还没和数据库角色连起来  是虚的

 

 

题目3.1:每个用户有建立对像的权限,各自建立自已的对象(如表和视图等)。

图 11   自定义一个数据库角色user 然后实例化给user01、02、03,即连接起来

分别赋予 各个用户 增删改查 自己表的权限

比如 user01表可以增删改查user01table 以此类推

 

题目3.2:各用户之间就表或视图的查询、修改、删除、插入等互相授权,在授权过程中体会GRANT命令中WITH GRANT OPTIN短语的作用。

 

第一步:首先我们退出SQL server,改用user01的账号登入 ,执行以下代码:

图 12 第一行代码为在自己的表中插入一行数据

第二行代码为查找自己表的全部信息,已经输出

第三行为把自己表的 增删改查 权限授权给 user02

 

第二步:然后我们再退出SQL server,改用user02的账号登入 ,执行以下代码:

 

首先查询user01table,因为user01已经赋予其权限,所以可以查到:

 

再查询user02table,因为这本来就是自己的表,所以也可以查询:

最后查询user03table,因为没有权限,无法访问

 

 

 

题目3.3:分情况收回授权,并体会REVOKE命令中GRANT OPTION FOR 和CASCADE短语的作用

 

我们先切换为user01的账号,执行以下代码:

即删除对user02的授权

然后再切换到user02的账号,查询表1,无法查询

 


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
3月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
326 3
|
20天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
56 11
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
40 2
|
2月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
3月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
117 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
3月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
3月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析
|
3月前
|
SQL 存储 数据采集
如何把问卷录入SQL数据库
将问卷数据录入SQL数据库是一个涉及数据收集、处理和存储的过程
下一篇
开通oss服务