sql server 用户访问权限设置
sql server 服务账户和权限管理配置
大多数服务及其属性可通过使用SQL Server 配置管理器进行配置。以下是在C 盘安装Windows 的情况下最新的四个版本的路径。
安装的服务SQL Server
根据您决定安装的组件,SQL Server 安装程序将安装以下服务:
∙SQL Server Database Services - 用于SQL Server 关系数据库引擎的服务。可执行文件为\MSSQL\Binn\sqlservr.exe。
∙SQL Server 代理 - 执行作业、监视SQL Server、激发警报以及允许自动执行某些管理任务。SQL Server 代理服务在SQL Server Express 的实例上存在,但处于禁用状态。可执行文件为\MSSQL\Binn\sqlagent.exe。
∙Analysis Services - 为商业智能应用程序提供联机分析处理(OLAP) 和数据挖掘功能。可执行文件为\OLAP\Bin\msmdsrv.exe。
∙Reporting Services - 管理、执行、创建、计划和传递报表。可执行文件为\Reporting
Services\ReportServer\Bin\ReportingServicesService.exe。
∙Integration Services - 为Integration Services 包的存储和执行提供管理支持。可执行文件的路径是\130\DTS\Binn\MsDtsSrvr.exe ∙SQL Server Browser - 向客户端计算机提供SQL Server 连接信息的名称解析服务。
sql server提权方法汇总
sql server提权方法汇总
SQL Server提权是一种常见的攻击手段,通常用于获取系统管理员权限。以下是一些常用的SQL Server提权方法汇总:
1. 用户名欺骗:通过猜测或欺骗系统中的默认用户名(如sa)来获取管理员权限。攻击者可能会尝试使用与默认用户名相似的用户名进行登录,或者通过猜测密码的方式尝试破解管理员账户。
2. 暴力破解:通过尝试所有可能的用户名和密码组合来破解管理员账户。攻击者可以使用自动化工具或脚本进行暴力破解,尝试登录到SQL Server 并获取管理员权限。
3. 社工攻击:攻击者通过收集目标的信息,如用户名、密码、电子邮件地址等,尝试使用这些信息进行登录。攻击者可能会使用已知的弱密码或通过社交工程手段获取密码。
4. 注入攻击:攻击者通过在SQL查询中注入恶意代码,利用SQL注入漏洞获取管理员权限。攻击者可能会尝试在用户输入的数据中插入恶意的SQL代码,从而控制数据库并获取管理员权限。
5. 漏洞利用:利用SQL Server的已知漏洞进行提权。这些漏洞可能包括已知的安全漏洞、软件漏洞或配置错误。攻击者可能会利用这些漏洞来获取管理员权限。
6. 提升数据库用户权限:攻击者通过提升数据库用户权限来获取管理员权限。攻击者可能会创建一个数据库用户,并将其权限提升到管理员级别,从而获得对整个系统的访问权限。
7. 远程桌面提权:攻击者通过远程桌面服务或其他远程访问工具连接到
目标服务器,并尝试使用管理员账户登录。如果成功,攻击者将获得对整个系统的访问权限。
请注意,以上方法并非适用于所有情况,具体提权方法取决于目标环境和安全设置。在进行任何攻击之前,建议仔细评估风险并遵守相关法律法规。此外,为了加强SQL Server的安全性,建议采取以下措施:
sqlserver授权函数的权限
在SQL Server中,函数是一种用来处理数据并返回结果的特殊类型的存储过程。在使用函数时,必须考虑对函数的授权和权限管理。因为函数可以包含对数据库的敏感操作,所以需要合理管理和授权函数的权限以保护数据库的安全性和完整性。
对于SQL Server中的函数,授权权限是非常重要的。在授权函数的权限时,需要考虑以下几个方面:
1. 身份验证和授权
在SQL Server中,授权权限是通过对数据库对象的授权来实现的。要想对函数进行授权,首先需要对用户或登入名进行身份验证和授权。这样才能保证只有经过认证和授权的用户才能对函数进行操作。
2. 对函数的执行权限
对于一个函数来说,最基本的权限就是执行权限。只有授权了执行权限的用户才能调用函数并得到结果。在SQL Server中,可以使用GRANT语句对用户进行授权,使其具有执行函数的权限。
3. 对函数的修改权限
除了执行权限之外,还需要考虑对函数的修改权限。因为函数可能需要进行更新和维护,所以需要授权一些用户或角色具有修改函数的权限。可以使用ALTER或CREATE语句对用户进行授权,使其具有对函数进行修改的权限。
4. 对函数的查看权限
除了执行和修改权限之外,有时还需要对函数的查看权限进行授权。
这样可以确保只有经过授权的用户才能查看函数的定义和实现细节。
可以使用GRANT语句对用户进行授权,使其具有查看函数的权限。
5. 对函数的安全性
在授权函数的权限时,还需要考虑函数的安全性。对于一些敏感的函数,可能需要限制其访问权限,确保只有经过授权的用户才能调用和
sql server 数据库用户权限管理的设置 -回复
sql server 数据库用户权限管理的设置-回复Elasticsearch是一个开源的分布式搜索和分析引擎,它提供了强大的聚合功能,用于对大型数据集进行分析和聚合操作。在Elasticsearch中,聚合是通过使用特定的聚合组件来执行的,其中之一就是terms聚合。terms 聚合用于对字段的值进行分组,并计算每个分组的文档数或其他统计信息。
在进行terms聚合时,默认情况下,Elasticsearch根据每个分组的文档数进行排序。也就是说,文档数最多的分组将排在前面。如果有多个分组具有相同的文档数,则根据词条的字典顺序进行排序。
下面将逐步回答关于Elasticsearch terms聚合的默认排序规则,并解释如何自定义排序规则。
步骤1:什么是terms聚合?
terms聚合是Elasticsearch中的一种聚合,用于对字段的值进行分组。它将具有相同值的文档分到一个分组,并计算每个分组的文档数或其他统计信息。
步骤2:默认的排序规则是什么?
在terms聚合中,默认情况下,Elasticsearch根据每个分组的文档数进行排序。文档数最多的分组将排在前面。
步骤3:如何自定义排序规则?
要自定义排序规则,可以使用Elasticsearch中的order参数。order参数允许我们指定聚合结果的排序方式。可以根据不同的字段进行排序,也可以使用内置的一些特殊选项。
例如,可以按字母顺序对聚合结果进行排序,可以使用以下代码:
json
{
"aggs": {
"my_terms": {
"terms": {
sql server登录实例
SQL Server登入实例
一、简介
SQL Server是一种关系数据库管理系统 (RDBMS),它是由微软公司
开发的,用于存储和检索数据。SQL Server登入实例是指用户登入数据库服务器的一个具体实例。在SQL Server中,用户必须通过登入来访问数据库,登入实例是用户连接到数据库的入口。
二、登入实例的创建
1. 打开SQL Server Management Studio (SSMS),在“对象资源管
理器”窗口中,右键单击“安全性”文件夹,选择“新建登入”。
2. 在“登入 - 新建”对话框中,输入要创建的登入名,选择登入类型(Windows身份验证或SQL Server身份验证),然后设置登入的默认数据库和语言。
3. 如果选择SQL Server身份验证,还需要设置登入的密码。
4. 点击“确定”按钮,即可创建登入实例。
三、登入实例的权限管理
1. 在“对象资源管理器”窗口中,找到已创建的登入实例,右键单击
选择“属性”。
2. 在“登入属性”对话框中,选择“服务器角色”标签页,可以为登
入实例分配服务器级别的权限,如sysadmin、securityadmin等。3. 选择“用户映射”标签页,可以为登入实例分配数据库级别的权限,
选择对应的数据库,设置用户权限。
4. 点击“确定”按钮,即可完成权限的分配。
四、登入实例的连接
1. 在SSMS中,选择“数据库引擎”,在“连接到服务器”对话框中,输入服务器名称和登入名,选择身份验证方式,点击“连接”按钮即
可连接到数据库服务器的实例。
2. 通过程序连接数据库时,需要在连接字符串中指定服务器位置区域、登入名和密码,以进行验证。
sql server所采用的安全机制
sql server所采用的安全机制
SQL Server采用了多种安全机制来保护数据的安全性和隐私性。以下是一些常见的安全机制:1、身份验证:SQL Server支持多种身份验证方式,包括Windows 身份验证和SQL Server身份验证。Windows身份验证使用操作系统的用户和密码,SQL Server身份验证使用SQL Server数据库的用户名和密码。2、权限和访问控制:SQL Server使用基于角色的权限模型来管理对数据库对象的访问权限。管理员可以创建不同的角色,并将用户分配给相应的角色以控制其对数据库对象的访问权限。3、加密:SQL Server支持数据加密,可以对敏感数据进行加密存储,保护数据的机密性。4、传输层安全性:SQL Server支持使用SSL/TLS 协议对数据库连接进行加密,确保数据在传输过程中的安全性。5、审计和日志:SQL Server提供了审计和日志功能,可以记录数据库的操作历史,包括登录信息、数据更改和访问权限的变更等,以便对数据库进行监控和追踪。6、防火墙和网络安全:SQL Server可以配置防火墙以限制对数据库的访问,并支持其他网络安全相关的功能,如IP过滤、端口控制等。需要注意的是,SQL Server的安全性还取决于操作系统和网络的安全性。为了确保数据库的综合安全性,还需要在操作系统和网络层面采取相应的安全措施。
SQL Server 2008修改表的访问权限
SQL Server 2008修改表的访问权限
在SQL Server中,还可以通过修改表的访问权限,指定一个角色对其进行访问、修改、删除等操作。例如赋予public角色查看Student表中studentID、studentName、sex、classID 四列,操作步骤如下:
(1)启动SQL Server Management Studio,展开Students数据库节点,列出数据库中的表。
(2)右击【student】表,执行【属性】命令。在弹出的【属性】窗口中,单击【权限】选择页,进入【权限】页面,如图3-5所示。
图3-5 【权限】页面
(3)单击【搜索】按钮,将弹出【选择用户或角色】对话框,单击【浏览】按钮,如图3-6所示。然后,在弹出的【查找对象】对话框中,启用“[public]”前的复选框,并单击【确定】按钮,如图3-7所示。
图3-6 选择用户或角色图3-7 查找对象(4)在【表属性】对话框中,选择【显示】选项卡中的【更新】权限,并启用【列权限】按钮。通过单击【列权限】按钮打开【列权限】对话框,如图3-8所示。
图3-8 授予权限
(5)在【列权限】对话框中,设置studentID、studentName、sex、classID这4列的
权限,启用可以查看的列的复选框,单击【确定】按钮退出,如图3-9所示。
(6)在【表属性】窗口单击【确定】按钮,完成表属性修改操作。
sqlserver的executepermission方法-概述说明以及解释
sqlserver的executepermission方法-概述说明以
及解释
1.引言
1.1 概述
概述部分的内容可以从如下角度入手进行撰写:
SQL Server是一种关系数据库管理系统,广泛应用于各个领域的数据管理和处理中。而在SQL Server中,executepermission方法是一种重要的权限管理机制。它可以控制用户或者角色对于特定的存储过程、函数或者触发器的执行权限。
在数据库管理中,权限控制一直是一个非常重要的话题。合理的权限控制可以保证数据库的安全性和可靠性,避免未经授权的操作和数据泄露。而executepermission方法作为SQL Server中权限控制的一部分,具有非常重要的作用。
executepermission方法的主要作用是限制用户或者角色对于特定对象的执行权限。通过授予或者撤销executepermission权限,可以精确地控制用户或者角色对于存储过程、函数或者触发器的执行权限。这种精细的权限控制机制可以帮助数据库管理员更好地保护数据库的数据和结构。
除了控制执行权限,executepermission方法还可以与其他权限控制机制相结合,形成更为复杂的权限管理方案。例如,可以通过executepermission方法来限制用户或者角色对于敏感数据的访问权限,从而保证数据的隐私和机密性。
总的来说,executepermission方法是SQL Server中非常重要的一种权限管理机制。它可以帮助数据库管理员控制用户或者角色对于存储过程、函数或者触发器的执行权限,从而保护数据库的安全性和可靠性。在数据库管理中,合理使用executepermission方法可以提高数据的保密性和完整性,降低数据遭到未经授权访问和操作的风险。
sql添加用户只有select权限
1. SQL数据库分配权限打开SQL-Server管理工具?安全性?登陆名?右键(新建登陆名)输入相应的信息(这里要去掉强制实施密码策略,强制密码过期,用户在下次登录时必须修改密码的选择)用户映射?选择我们要设置权限的数据库?通过选择数据库角色成员身份来设置新建用户的权限一般对整个库做权限的时候都是需要所有权限勾选db_owner就可以了(确定)这样就可以用我们新建的这个用户名来访问我们的数据库服务器了,而且这个用户名只拥有我们所勾选的数据库的所有权限。2. SQL数据库对每个表分配权限打开SQL-Server管理工具?安全性?登陆名?右键(新建登陆名)输入相应的信息(这里要去掉强制实施密码策略,强制密码过期,用户在下次登录时必须修改密码的选择)用户映射?选择我们要设置权限的数据库?通过选择数据库角色成员身份来设置新建用户的权限因为我们要对每个表进行单独的设置所以这里我们就不勾选db_owner了打开我们刚才勾选的test数据库?安全性?用户中看到我们刚才新建的那个用户了。找到新建的用户名?右键?属性安全对像添加特定类型的所有对象?确定对象类型选择表确定?这样我们就能看到test数据库中的所有表了接着我们再对每个表设置权限我对两个表都是设置的Select权限?确定?这样我们用test_name登陆test数据库的时候只能对其中的两个表做Select操作不能做其它操作
SQL Server 2005(账户)权限及安全设置
SQL2005账户权限及安全设置
Alex 编写整理
目录
一、SQL账户和角色概念介绍 (2)
二、SQL账号验证模式介绍及设置 (3)
A、验证模式介绍 (3)
B、验证模式设置 (4)
三、SQL账户和角色具体设置 (5)
A、创建服务器登录账户 (5)
B、创建数据库用户 (9)
C、数据库用户角色 (15)
四、应用程序角色 (20)
五、用户和角色的权限问题 (21)
六、总结 (21)
✧在进行SQL账户权限设置之前,需要先明确以下几个概念及彼此间的关系。
一、SQL账户和角色概念介绍
在SQL Server中,账户有两种:一种是登录服务器的登录账户(login name),即服务器登录名;另外一种是使用数据库的用户账户(user name),即数据库用户。
●服务器登录名:指有权限登录到某服务器的用户,登录账户只是让用户登录
到SQL Server中,登录名本身并不能让用户访问服务器中的数据库。要访问特定的数据库,还必须具有用户名。
●服务器角色:指一组固定的服务器用户,默认有8组,对新建的服务器登录
名必须指定某些服务器角色,相当于对服务器登录名进行第一步的权限分配。
注意:服务器角色不容许更改。
●数据库用户:指有权限能操作数据库的用户,用户名在特定的数据库内创建,
并关联一个登录名(当一个用户创建时,必须关联一个登录名)。
●数据库角色:指一组固定的有某些权限的数据库角色,通过给数据库用户指
派某些角色来限制数据库用户操作数据库的权利范围,这一步相当于对服务器登录名进行第二步权限分配。(通过自定义数据库角色可以避免对多个数据库用户重复定义相同的权限。)
sql server 授权函数
sql server 授权函数
SQL Server是一种关系型数据库管理系统,它提供了一系列的授权函数,用于管理数据库中的用户和权限。这些授权函数可以帮助管理员更好地控制数据库的访问权限,保护数据库的安全性。
SQL Server中的授权函数主要包括以下几种:
1. GRANT:用于授予用户或角色访问数据库对象的权限。例如,可以使用GRANT函数授予某个用户SELECT权限,使其可以查询数据库中的数据。
2. REVOKE:用于撤销用户或角色对数据库对象的访问权限。例如,可以使用REVOKE函数撤销某个用户的SELECT权限,使其无法再查询数据库中的数据。
3. DENY:用于拒绝用户或角色对数据库对象的访问权限。与REVOKE不同的是,DENY函数会覆盖GRANT函数的授权,即使用户被授予了某个权限,也无法访问该对象。
4. IS_MEMBER:用于判断用户是否属于某个角色。例如,可以使用IS_MEMBER函数判断某个用户是否属于管理员角色,以便对其进行授权或拒绝访问。
5. HAS_PERMS_BY_NAME:用于判断用户是否具有某个对象的特定权限。例如,可以使用HAS_PERMS_BY_NAME函数判断某个用户是
否具有SELECT权限,以便对其进行授权或拒绝访问。
6. OBJECT_ID:用于获取数据库对象的ID。例如,可以使用OBJECT_ID函数获取某个表的ID,以便对其进行授权或拒绝访问。
除了以上授权函数,SQL Server还提供了其他一些函数,如USER_ID、USER_NAME、ROLE_ID、ROLE_NAME等,用于获取用户或角色的ID或名称,以便进行授权或拒绝访问。
在SQL Server 2000中如何创建用户,分配权限
sql server2000 如何创建用户
use你的库名
go—-新增用户
exec sp_addlogin 'test’--添加登录
exec sp_grantdbaccess N’test'-—使其成为当前数据库的合法用户
exec sp_addrolemember N’db_owner’, N’test'--授予对自己数据库的所有权限—-这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go-—删除测试用户
exec sp_revokedbaccess N’test’--移除对数据库的访问权限
exec sp_droplogin N’test’--删除登录
如果在企业管理器中创建的话,就用: 企业管理器-—安全性-—右键登录——新建登录
常规项——名称中输入用户名——身份验证方式根据你的需要选择(如果是使用windows 身份验证,则要先在操作系统的用户中新建用户)—-默认设置中,选择你新建的用户要访问的数据库名服务器角色项这个里面不要选择任何东西
数据库访问项勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选”public",”db_ownew” 确定,这样建好的用户与上面语句建立的用户一样--—————-—---—-—--—-——---——---—--—---———--——--————---—-————-—-——----——------ 最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
——添加只允许访问指定表的用户: exec sp_addlogin ’用户名’,'密码’,’默认数据库名'——添加到数据库exec sp_grantdbaccess ’用户名’
sqlserver2008r2 权限管理说明
sqlserver2008r2 权限管理说明
SQL Server 2008 R2的权限管理是通过授权用户或角色来实现的。以下是一些关于权限管理的基本概念和操作:
1. 登录(Login)和用户(User):
-登录是指用户在SQL Server上的身份标识。登录可以使用SQL Server身份验证或Windows身份验证。
-用户是数据库内的一个实体,与登录关联,用于连接到数据库并执行操作。
2. 角色(Role):
-角色是一组权限的集合,可以将用户添加到角色中,从而为他们赋予一组共同的权限。
- SQL Server有预定义的固定角色(如db_datareader、db_datawriter)和用户定义的角色。
3. 权限(Permission):
-权限定义了用户或角色对数据库对象(表、视图、存储过程等)执行的操作。
-常见的权限包括SELECT、INSERT、UPDATE、DELETE等。
4. 授予(GRANT):
-通过GRANT语句可以向用户或角色授予特定的权限。例如:`GRANT SELECT ON table_name TO user_name;`
5. 拒绝(DENY):
-使用DENY语句可以拒绝用户或角色对特定权限的访问。例如:`DENY INSERT ON table_name TO user_name;`
6. 回收(REVOKE):
-使用REVOKE语句可以撤销已经赋予或拒绝的权限。例如:`REVOKE SELECT ON table_name FROM user_name;`
7. 层次化的权限控制:
sqlserver给用户赋予访问数据库的权限的语句 -回复
sqlserver给用户赋予访问数据库的权限的语句-回
复
如何在SQL Server中给用户赋予访问数据库的权限
在SQL Server中,管理员可以通过给用户分配适当的权限来控制用户对数据库的访问。本文将一步一步地介绍如何在SQL Server中给用户赋予访问数据库的权限。
首先,我们需要登录到SQL Server Management Studio (SSMS)。使用管理员账号和密码登录后,我们将进入SQL Server的管理界面。
第一步:创建一个新的登录账号
在SSMS中,我们可以通过将用户添加为登录账号来赋予他们访问数据库的权限。在“对象资源管理器”窗口中,展开“安全性”文件夹,右键点击“登录名”,然后选择“新建登录名”。接下来,将需要赋予权限的用户名输入到“登录名”字段中。您可以选择使用现有的Windows登录名或SQL Server登录名,具体取决于您的要求。然后设置一个密码,并在“默认数据库”字段中选择目标数据库。
第二步:分配数据库角色
在我们创建了用户登录账号之后,接下来我们需要为他们分配适当的数据库角色。数据库角色是一组预定义的权限集合,用于管理用户对数据库对
象的访问权限。在“对象资源管理器”中,找到并展开目标数据库文件夹,然后展开“安全性”文件夹。在该文件夹上点击右键,选择“新建用户”。在弹出的对话框中,输入用户的登录名并选择默认模式(通常是dbo)。然后在“数据库角色”字段中,选择要为用户分配的角色。常见的数据库角色包括db_datareader(读取数据库中的数据),db_datawriter(写入数据库中的数据)和db_owner(具有对数据库的完全控制权)。在此选择适当的角色,并单击“确定”。
sql server 数据库用户权限管理的设置
题目:SQL Server数据库用户权限管理的设置
一、概述
SQL Server是一种常用的关系型数据库管理系统,它提供了丰富的用户权限管理功能,可以对不同的用户设置不同的权限,以保障数据库
的安全性和稳定性。本文将介绍SQL Server数据库用户权限管理的设置方法和注意事项。
二、SQL Server的用户权限管理概述
1. 用户权限概念
在SQL Server中,用户可以是数据库管理员、开发人员或普通用户,每个用户都有一个唯一的标识符,称为登入名。用户权限是指用户对
数据库对象(如表、视图、存储过程等)所拥有的操作权限,包括查询、修改、删除等。
2. 用户权限级别
SQL Server中的用户权限通常分为以下几个级别:
(1) 服务器级别权限:包括对服务器级对象(如登入名、数据库、备份等)的权限管理。
(2) 数据库级别权限:包括对数据库中对象(如表、视图、存储过程等)的权限管理。
(3) 对象级别权限:包括对特定数据库对象的权限管理,如表、视图、存储过程等。
(4) 列级别权限:包括对表的某些列的权限管理。
3. 权限管理原则
(1) 最小权限原则:即给予用户的权限应该是最小权限,用户只能拥有其工作所需的权限,不应该给予过多权限。
(2) 适当权限分配:即根据用户的职责和工作需求,合理分配用户权限。
三、SQL Server用户权限管理设置方法
1. 创建登入名
在SQL Server Management Studio中,使用管理员登入创建新的登入名,设置登入名的登入方式,包括Windows身份验证和SQL Server身份验证,设置登入名的权限和默认数据库。
SQLServer中服务器角色和数据库角色权限详解
SQLServer中服务器角色和数据库角色权限
详解
SQL Server中服务器角色和数据库角色权限详解
在SQL Server中,角色是一种组织和管理权限的方式。服务器角色和数据库角色是在SQL Server中定义的两种不同类型的角色。本文将对SQL Server中的服务器角色和数据库角色的权限进行详细解析。
一、服务器角色权限
在SQL Server中,服务器角色是用于管理整个SQL Server实例的一组权限。它们决定了对于整个服务器来说,特定的用户或者登录名可以执行哪些操作。下面是SQL Server中常见的服务器角色及其权限的详细解析:
1. 系统管理员(sysadmin):该角色具有最高权限,可以执行服务器上的所有操作,包括创建、修改和删除数据库,管理登录名和其他角色等。
2. 安全管理员(securityadmin):该角色负责管理服务器安全相关的操作,例如创建和管理登录名、数据库用户、角色成员等。
3. 数据库管理员(dbcreator):该角色可以创建、修改和删除数据库,但不能执行服务器级别的操作。
4. 服务器操作员(serveroperator):该角色负责管理服务器操作,例如启动、停止和暂停服务器,以及监视服务器所有进程。
5. 备份操作员(backupoperator):该角色可以备份和还原数据库。
6. 数据库还原操作员(dbdatareader、dbdatawriter):dbdatareader 角色允许成员读取数据库中的数据,dbdatawriter角色允许成员向数据库中写入数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql server 用户访问权限设置:
/*--示例说明
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles 的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs 的所有权限。
--*/
USE pubs
--创建角色 r_test
EXEC sp_addrole 'r_test'
--授予 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test
--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'
-------------------------------补充--------------
--上面的授权为对单表进行授权
--2005可对SCHEMA级别进行授权
--授予安全账户 u_test ,架构interface下的查询权限
GRANT SELECT ON SCHEMA::interface TO u_test
--拒绝安全账户 u_test ,架构dbo下的权限
DENY VIEW DEFINITION ON SCHEMA::dbo TO risk
-------------------------------------------------
--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENY SELECT ON titles TO u_test
/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select 权限--*/
--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'
--删除登录 l_test
EXEC sp_droplogin 'l_test'
--删除角色 r_test
EXEC sp_droprole 'r_test'
exec sp_dropsrvrolemember N'aa', sysadmin
go
exec sp_addsrvrolemember N'aa', securityadmin
go
--作好SQL的安全管理
首先,做好用户安全:
--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问) 1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server 和windows"--确定
2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码
3.删除用户:
BUILTIN\Administrators
<机器名>\Administrator --这个用户不一定有
这样可以防止用windows身份登陆SQL
4.设置进入企业管理器需要输入密码
在企业管理器中
--右键你的服务器实例(就是那个有绿色图标的)
--编辑SQL Server注册属性
--选择"使用 SQL Server 身份验证"
--并勾选"总是提示输入登录名和密码"
--确定
--经过上面的设置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------
其次,改默认端口,隐藏服务器,减少被攻击的可能性
SQL Server服务器
--开始
--程序
--Microsoft SQL Server
--服务器网络实用工具
--启用的协议中"TCP/IP"
--属性
--默认端口,输入一个自已定义的端口,比如2433
--勾选隐藏服务器
----------------------------------------------------------------------------
--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限exec sp_droplogin N'test' --删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项