SQL中登录名的创建

来源:互联网 发布:js实现地球仪效果 编辑:程序博客网 时间:2024/05/18 00:09

什么是数据库安全性?

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

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

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 masterGOCREATE LOGIN teacher WITH PASSWORD ='123'GO /*创建数据库用户名*/USE StudentCREATE USER PubUser FOR LOGIN teacher GO /*为用户PubUser赋予表Student查看、插入、删除的权限*/USE StudentGRANT SELECT,INSERT,DELETEON StudentTO PubUser /*回收用户PubUser对表Student的删除权限*/USE StudentREVOKE DELETE ON StudentFROM PubUser   /*创建student登录名,密码为123,默认数据库为Student*/USE masterGOEXEC 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 StudentGRANT CREATE VIEW,CREATE TABLETO student --授予他对student数据库中的study表具有所有权限,且可将这些权限授予他人GRANT ALL PRIVILEGESON StudyTO studentWITH GRANT OPTION --撤销他对student数据库中的study表的修改权限REVOKE UPDATEON StudyFROM student --禁止他对student数据库中的study表的删除权限DENY DELETE ON SC to student

0 0
原创粉丝点击