- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库安全性补充讲义 1
数据库安全性补充讲义
3-1 安全性概述
一、SQL Server 2005的权限分为三个级别:
操作系统级别:本地登录帐户、域帐户、组账户
实例级别:SQL Server 登录名、角色
数据库级别:数据库用户、数据库角色、应用程序角色
服务器名称.数据库名称.用户名称.对象名称
服务器名称.数据库名称.架构名称.对象名称(表、视图、存储过程)
School数据库一共有20张表,a访问3表,b访问4张表,c访问6。
SQL Server 登录名、角色除了SQL Server Management Studio可以查看实例的登录名、角色外,还可以通过视图查询:
select name,type_desc,create_date
from master.sys.server_principals
查询不同数据库的实体,有所不同。查看AdventureWorks 或者school数据库。
use AdventureWorks(school)
select name,type_desc,create_date
from sys.server_principals
二、安全对象
安全对象不论在哪个级别上,其含义都是要访问的对象,此对象的范围从操作系统级别的“文件”、“注册表”,到实例级别的“登录账户”、“端点”、“数据库/服务器”,再到数据库级别的安全对象,如“用户”、“角色”、“架构”。其中,架构包括大家熟悉的“数据表”、“视图”、“存储过程”。
除了SQL Server Management Studio可以查看实例级别的安全对象,更可以使用目录视图查询。
查看目录视图取得数据库安全对象
select * from sys.databases
查询系统数据库表取得登录安全对象
select * from syslogins
查询目录视图取得端点安全对象
select * from sys.endpoints
三、权限操作
Grant
Deny
Revoke
例1:通过图形化界面操作,对用户Z1-302-51/winu1拒绝了connect sql的权限。
use master
go
deny connect sql to Z1-302-51/winu1
go
例2:将数据库中架构授权给某用户,则属于该架构的数据表也授权给该用户。
[安全性]-〉[架构]-〉[新建架构]-〉my
将数据表student、teacher表的架构改为my。(修改表,属性)
在架构my右击,[权限]-〉添加 a2用户。
则a2登陆后可以访问school数据库。
为架构设置权限:
use school
go
grant select on schema::my to a2
go
则a2登陆后,可以查询两个表。
完成以下语句。
--利用Guest角色对该架构的任何对象的select结果
select suser_name() login,
user_name() DB_USER
GO
select count(*) from my.student
几点注意:
三种数据库控制语言:grant、revoke、deny
某些权限可以继承。例如架构的权限,可以被下一级的数据表、视图等直接继承。
主体级别中,拒绝语句比授权语句拥有较高的优先级。
例3:有windows用户组winusers,里面有两个windows用户winu1、winu2。
分别授权用户组winusers、winu1为sql登录名和school合法用户。
给用户组Z1-301-51/winusers拒绝insert操作 student表的权限。
授权给winu1对student表的insert权限。
测试:winu1可否对student表有insert权限?
安全对象级别中,拒绝语句比授权语句拥有较高的优先级。
例4:
在用户被授予my架构的select权限时,若其中一个数据表拒绝让该用户进行select权限,则该用户无法对此数据表进行select操作。
3-2 连接实例的第一步
3-2-1两种登录数据库的验证模式:
1、Windows身份验证模式
using System.Data.SqlClient;
private void button1_Click(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection conn = new SqlConnection();
conn.ConnectionString = Data Source=localhost;Initial Catalog=school;Integrated Se
文档评论(0)