SQL中登录名的创建

什么是数据库安全性?

简单地说,数据库系统安全性设计是为了防止数据库数据泄露,防止数据被任意修改或删除的设计,从而保证数据的安全可靠和正确有效性。

数据库系统主要通过以下几种方式来实现安全性控制:

1、用户身份鉴别

2、多层存取控制

3、审计

4、视图和数据加密


安全模式

SQL Server提供了两种不同的方法来认证用户进入服务器

1、Windows认证

2、SQL Server混合认证


使用企业管理器设置登录名

登录名,用来连接和登录数据库服务器,并具有相应的数据库访问权限,一个登录名可以映射到多个数据库。

一般我们进入数据库使用的是Windows验证方式,这种方式赋予了操作者所有的用户权限,现在需要设置一个登录用户,使用SQL Server登录方式,并对它的权限加以限制。

新建登录名的方法:用Windows验证方式登录后,在安全性中找到登录名,右键新建登录名,然后设置相关属性


以下是新建一个名为Teacher的SQL Server验证方式的登录名



我们可以将其同时映射到几个数据库中,那么Teacher这个登录名就对相应的数据库有访问的权限,而没有映射的数据库则不具有访问权限




我们还可以为这个登录名设置服务角色,服务器角色用于向用户授予服务器范围内的安全特权,可以同时为一个登录名设置多个角色。

下面是为teacher这个登录名设置新建数据库特权




服务器角色及其特权



在SQL Server中,一些存储过程提供了管理SQL Servers登录名的功能,主要包括:

sp_addlogin:创建新的使用SQL Server认证模式的登录名

sp_droplogin: 删除使用SQL Server认证模式的登录名,禁止其访问SQL Server

sp_helplogins用来显示SQL Server 所有登录者的信息,包括每一个数据库里与该登录者相对应的登录名

sp_grantlogin:  设定一WIinodws用户或用户组为SQL Server 登录者

sp_revokelogin:用来删除Windows用用户或用户组在SQL Server 上的登录信息

sp_denylogin:拒绝某一Windows用户或用户组连接到SQL Server


USE master
/*创建一个登录用户:登录名是test_login,密码是123,登录缺省数据库是TS*/
exec sp_addlogin test_login,'123','TS'

/*显示登录者test_login的信息*/
exec sp_helplogins @LoginNamePattern='test_login'

/*删除登录这test_login的信息*/
exec sp_droplogin 'test_login'

/*设定一Windows用户或用户组为SQL Server登录者,这里的用户必须是Windows用户*/
exec sp_grantlogin 'YZ-XCM\YZ'

/*删除windows用户或用户组在SQL Server上的登录信息*/
exec sp_revokelogin 'YZ-XCM\YZ'					
/*拒绝Windows 用户登录到SQL Server*/
exec sp_denylogin 'YZ-XCM\YZ'

下面是基于学生数据库Student的登录名创建及相关授权的定义

/*创建teacher登录名*/
USE master
GO
CREATE LOGIN teacher WITH PASSWORD ='123'
GO
 
/*创建数据库用户名*/
USE Student
CREATE USER PubUser FOR LOGIN teacher 
GO
 
/*为用户PubUser赋予表Student查看、插入、删除的权限*/
USE Student
GRANT SELECT,INSERT,DELETE
ON Student
TO PubUser
 
/*回收用户PubUser对表Student的删除权限*/
USE Student
REVOKE DELETE 
ON Student
FROM PubUser
 
 
 
/*创建student登录名,密码为123,默认数据库为Student*/
USE master
GO
EXEC sp_addlogin student,'123','Student'                          /*CREATE LOGIN student WITH PASSWORD ='123'  */
EXEC sp_addsrvrolemember 'student', 'sysadmin';			  /*将其加入sysadmin角色中*/
EXEC sp_grantdbaccess 'student', 'USER3'			  /*将其加入Student数据库用户中*/
GO
 
--授予他在student数据库中创建视图、创建表的权限
USE Student
GRANT CREATE VIEW,CREATE TABLE
TO student
 
--授予他对student数据库中的study表具有所有权限,且可将这些权限授予他人
GRANT ALL PRIVILEGES
ON Study
TO student
WITH GRANT OPTION
 
--撤销他对student数据库中的study表的修改权限
REVOKE UPDATE
ON Study
FROM student
 
--禁止他对student数据库中的study表的删除权限
DENY DELETE ON SC to student

  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值