实验4  数据的安全性管理

实验4  数据的安全性管理

一、实验目的

  1. 掌握SQL Server身份验证模式。
  2. 掌握创建登录账户、数据库用户的方法。
  3. 掌握使用角色实现数据库安全性的方法。
  4. 掌握权限的分配。

二、实验内容

1、设置身份验证模式:Windows身份验证模式和混合模验证模式。

2、设置登录账户

3、设置数据库用户

4、设置数据库角色。

5、设置管理对象的权限

三、实验步骤

1.SQL Server服务器设置为混合身份验证模式

如果安装时使用的是”“Windows身份验证模式”,则按以下步骤可以将SQL Server服务器设置为“混合身份验证模式”。

  • 依次单击开始->所有程序->SQL Server->SQL Server Management Studio 启动SQL Server数据库管理系统
  • 连接成功后,右键一个服务器实例,选择"属性"
  • 在"属性"窗口中,转到"Security"(安全性)项,在"服务器身份验证"中设置为"SQL Server和Windows身份验证模式",确定,根据提示,应该重新启动SQL服务
  • 使用Windows身份验证登录,执行下面的语句启用sa用户,同时清除sa的密码(能成功登陆后再根据你的需要设置),也可在“新建查询”窗口中执行以下SQL语句完成。
EXEC sp_password null, '123','sa'

ALTER LOGIN sa ENABLE
  • 检查Microsoft SQL Server→配置工具→SQL Server Configuration Manager中是否将相关协议启用并按提示重启服务。
  • 用sa登录连接,“服务器名称”以IP形式给出,如:127.0.0.1\SQLEXPRESS或172.16.67.158\SQLEXPRESS,(具体IP值查看本机或其他同学机器的“本地连接”,172.16.67.158只是示例),测试登录情况。
  • 如果不能登录127.0.0.1\SQLEXPRESS服务器,打开Microsoft SQL Server→配置工具→SQL Server Configuration Manager,启用SQL Server Browser服务,并打开SQL Server网络配置”,启用“TCP/IP”并右击修改属性中ip地址127.0.0.1为启用

2.创建登录名mylogin

  • 方法一:创建使用SQL Server身份验证的SQL Server登录名
  • 在SQL Server Management Studio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。
  • 右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。
  • 在“常规”页上的“登录名”框中输入一个新登录名的名称。
  • 选择“SQL Server身份验证”(注意:不要使用默认的“Windows身份验证”)。
  • 输入登录名mylogin及其密码123
  • 选择应当应用于新登录名的密码策略选项。注意:不要钩选“下次登录时必须修改密码”
  • 单击“确定”。
  • 用新创建的登录名登录系统,看看可以进行哪些操作,特别测试一下打开“学生_教学”数据库后的结果。
  • 方法二:通过Transact-SQL创建使用SQL Server身份验证的SQL Server登录名
    • 在查询编辑器中,输入以下Transact-SQL命令:
CREATE LOGIN mylogin WITH PASSWORD = '123';

GO

3.创建数据库用户myuser并映射登录名mylogin

    通过SSMS将附件压缩包“案例数据库”中的“学生-教学”数据库(含mdfldf两个文件)导入到本地数据库中,然后执行以下操作:

  • 方法一:通过SQL Server Management Studio创建数据库用户
    • 打开对象资源管理器并展开要在其中创建新登录名的服务器实例文件夹。
    • 依次展开数据库,打开“学生-教学”数据库,点击“安全性”-“用户”
    • 右键单击用户,选择“新建用户”
    • 输入用户名myuser,选择登录名mylogin,确定。
      • 方法二:通过Transact-SQL创建数据库用户:
create user myuser for login mylogin with default_schema=dbo
  • 指定数据库用户“myuser”的默认schema是“dbo”。这意味着用户“myuser”在执行“select * from t”,实际上执行的是 “select * from dbo.t”。

4创建并设置数据库角色

  • 方法一:通过SQL Server Management Studio新建数据库角色
    • 打开对象资源管理器并展开要在其中创建新登录名的服务器实例文件夹
    • 依次展开数据库,某个具体数据库(例如:“学生-教学”数据库),选择“安全性”-“角色”
    • 右击选中新建数据库角色,输入角色名myrole,确定
      • 方法二:通过Transact-SQL新建角色:

CREATE ROLE myrole

5对用户赋予指定的角色

  • 方法一:在对象资源管理器中设置数据库角色
    • 在SQL Server Management Studio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。
    • 依次展开数据库,打开“学生-教学”数据库,点击“安全性”-“用户”
    • 选中“myuser”用户,右击“属性”,在展开的数据库用户属性对话框中为其赋予“db_owner”角色和“myrole”角色。
    • 方法二:通过Transact-SQL设置数据库角色
      • 通过加入数据库角色,对数据库用户“myuser”赋予权限:

exec sp_addrolemember 'db_owner', 'myuser'

此时,myuser就可以全权管理数据库“学生-教学”中的对象了。

  • 如果想让SQL Server登陆帐户“mylogin”访问多个数据库,比如S_T。可以让sa执行下面的语句:
use S_T

go

create user myuser for login mylogin with default_schema=dbo

go

exec sp_addrolemember 'db_owner', 'myuser'

go
  • 此时,mylogin就可以有两个数据库(“学生-教学”、“S_T”)的管理权限了!

6.设置管理对象的权限

  • 方法一:在对象资源管理器中授权、收回和拒绝权限:
  • 选中需要授权的登录名、用户名或角色名
  • 右键单击选择“属性”,在弹出的该对象的属性窗口中选择“安全对象”,进行权限分配。
    • 方法二:通过Transact-SQL分配权限:通过GRANTREVOKE语句

 

7. mylogin登录“127.0.0.1\SQLEXPRESS”服务器,在“学生_教学”数据库的Student表中进行增删改查的操作。示例如下。

 

 

四、实验任务

1、创建一个登录账号Testlogin。

2、在“学生_教学”数据库中创建对应于这个登录账号的数据库用户TestUser。

3、在“学生_教学”数据库中创建角色TestRole,它应该拥有创建表和视图的权限,并拥有对Student表的查询、修改、插入权限。

 

4、将用户TestUser添加到TestRole角色中。

5、以Testlogin登录“127.0.0.1\SQLEXPRESS”服务器,在“学生_教学”数据库的Student表中插入一条记录。

五、实验报告要求

1、写出完成实验任务1~4相对应的SQL语句

任务1:

CREATE LOGIN TestLogin WITH PASSWORD = '123';

GO

任务2:

create user TestUser for login Testlogin with default_schema=dbo

任务3:

CREATE ROLE TestRole

grant create table,create view to TestRole

grant select,update,insert on Student to TestRole

任务4:

exec sp_addrolemember 'TestRole', 'TestUser'

2、给出实验任务5的执行界面截图。参照“实验步骤”中的最后一幅示例图,要求同时显示Testlogin登录“127.0.0.1\SQLEXPRESS”服务器的界面信息及在“学生_教学”数据库的Student表中插入一个名字为“王小飞”的学生记录。

use 学生_教学

go

INSERT INTO Student (Sno,Sname)

VALUES(202005113,'王小飞')

SELECT *

FROM Student

3、并记录在实验过程中遇到的问题、解决办法及心得体会。

问题1:添加附件失败,如图:


原因:断开了windows身份验证,也没有登录sa的混合身份验证,而是直接进行了TestLogin身份验证,导致没有权限添加附件。

解决办法:在windows身份验证的连接下,再次进行sa的混合身份验证,这里才可以添加身份验证。当然,我也在网上搜了搜,打开了很多权限。

问题2:127.0.0.1\SQLEXPRESS没有连接上。

原因:脑子抽了,以为有选项可以供选择。

解决办法:网上搜了很多,也打开了很多权限,启动服务好多次。最后同学告诉我,这是手动输入。
问题3:

解决办法:要在学生-教学数据库里操作,添加use 学生_教学 go 语句。

心得体会:多练多学多问,继续加油。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值