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,无法查询

 

  • 22
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实验2 SQL Server数据库管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-SQL语句对数据库进行管理的方法。 2.实验内容及步骤 (1)在SQL Server管理平台中创建数据库。 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。 右击"数据库"项,在快捷菜单中选择"新建数据库"菜单项。在新建数据库对话框的数据 库名称文本框中输入学生管理数据库名studentsdb,单击"确定"按钮。 (2)选择studentsdb数据库,在其快捷菜单中选择"属性"菜单项,查看"常规"、"文 件"、"文件组"、"选项"、"权限"和"扩展属性"等页面。 (3)打开studentsdb数据库的"属性"对话框,在"文件"选项卡中的数据库文件列表 中修改studentsdb数据文件的"分配的空间"大小为2MB。指定"最大文件大小"为5MB。修 改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。 (4)单击"新建查询"打开查询设计器窗口,在查询设计器窗口中使用Transact- SQL语句CREATE DATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息 。 (5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自 动递增大小为1MB。 (6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为 5MB,最大文件大小为10MB。 (7)使用SQL Server管理平台将studb数据库的名称更改为student_db。 (8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? 不一定 (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除 数据库? (5)能够删除系统数据库吗? ----------------------- SQL数据库实验报告实验六-实验二全文共3页,当前为第1页。 SQL数据库实验报告实验六-实验二全文共3页,当前为第2页。 SQL数据库实验报告实验六-实验二全文共3页,当前为第3页。
好的,我会根据您的问题来为您解答SQL Server基础学习中,如何创建登录用户、创建数据库用户以及分配权限的问题。 1. 创建登录用户SQL Server中创建登录用户需要使用以下语句: ``` CREATE LOGIN login_name WITH PASSWORD = 'password'; ``` 其中,`login_name`是您要创建的登录用户名,`password`是该用户的密码。 如果需要为该用户指定特定的数据库作为默认数据库,可以使用以下语句: ``` CREATE LOGIN login_name WITH PASSWORD = 'password', DEFAULT_DATABASE = database_name; ``` 其中,`database_name`是您要指定的数据库名称。 2. 创建数据库用户SQL Server中创建数据库用户需要使用以下语句: ``` USE database_name; CREATE USER user_name FOR LOGIN login_name; ``` 其中,`database_name`是您要创建用户数据库名称,`user_name`是您要创建的数据库用户名,`login_name`是您刚刚创建的登录用户名。 如果需要为该用户指定特定的模式作为默认模式,可以使用以下语句: ``` USE database_name; CREATE USER user_name FOR LOGIN login_name WITH DEFAULT_SCHEMA = schema_name; ``` 其中,`schema_name`是您要指定的模式名称。 3. 分配权限 在SQL Server中分配权限需要使用以下语句: ``` USE database_name; GRANT permission_name TO user_name; ``` 其中,`database_name`是要分配权限的数据库名称,`permission_name`是要授予的权限名称,`user_name`是要授予权限的数据库用户名。 如果需要撤销该用户的权限,可以使用以下语句: ``` USE database_name; REVOKE permission_name FROM user_name; ``` 以上就是SQL Server中创建登录用户、创建数据库用户以及分配权限的基本操作方法。希望这些信息对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值