`
liuxx.adam
  • 浏览: 79678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql server 用户访问权限设置

阅读更多
[转载]
原文地址:http://topic.csdn.net/u/20080106/20/84b91329-d680-40a1-b09f-af601e83647d.html

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身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名

服务器角色项
这个里面不要选择任何东西

数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"

确定,这样建好的用户与上面语句建立的用户一样
--------------------------------------------------------------------------- 

最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:

--添加只允许访问指定表的用户: 
exec  sp_addlogin  '用户名','密码','默认数据库名' 

--添加到数据库 
exec  sp_grantdbaccess  '用户名'

--分配整表权限 
GRANT  SELECT ,  INSERT ,  UPDATE ,  DELETE  ON table1 TO [用户名]

--分配权限到具体的列
GRANT  SELECT ,  UPDATE  ON table1(id,AA) TO [用户名]
分享到:
评论

相关推荐

    数据库初级课件-sql语句初级学习

    sql server 用户访问权限设置:

    SQL Server权限管理

    对于一个数据库管理员来说,安全性就意味着必须保证那些具有特殊数据访问权限的用户能够登录到SQL Server,并且能够访问数据以及对数据库对象实施各种权限范围内的操作;同时,他还要防止所有的非授权用户的非法操作...

    如何开启SqlServer 远程访问

    当Microsoft Sqlserver 2012 安装好后,接下的的工作需要配置Sqlserver数据库允许远程访问,只有配置了Sqlserver远程访问,其他ip客户端才能访问,配置sqlserver远程访问大致分为三步,即配置SQL Server Management ...

    SQL Server 2008管理员必备指南(超高清PDF)Part1

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    SQL.Server.2008 角色与权限管理

    SQL.Server.2008 角色与权限管理

    SQL Server 2005更改数据库的登录用户名与访问权限

    SQL Server 2005更改数据库的登录用户名与访问权限

    SQLServer2000数据访问安全性

    数据存储,例如 Microsoft_ SQL Server? 2000,在大多数分布式Web应用程序中起着至关重要的作用。数据存储可以包含各种类型的数据,包括用户应用程序参数、个人私密数据和医疗记录、审核以及安全日志,甚至还包括...

    SQL Server 2008管理员必备指南(超高清PDF)Part3

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    Microsoft SQL Server 2005 Express Edition SP3

    对于 SQL Server 2000 中的 Microsoft 数据访问组件 (MDAC) 客户端,请使用 SQL Server 2000 客户端网络实用工具。对于 SQL 本机客户端,请使用“添加或删除程序”卸载 SQL 本机客户端。在群集中,请卸载所有节点中...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...

    局域网聊天系统(JAVA+sqlserver)

    局域网聊天系统 (JAVA+sqlserver)

    SQLserver发邮件

    执行 xp_cmdshell 来测试 SQL Server 对 Exchange Server 的访问权限,它执行与 "SQL 邮件 "相同的权限。使用下面的命令测试对服务器的连接,假定 Exchange Server 位于名为 "MyServer "的计算机上。

    SQLServer安全及性能优化

    sqlserver的审核机制可以帮助跟踪并且阻止系统中没有授权的用户他的行为。比如没有授权的用户登录系统会阻止这次登录,并且把这次操作给记录下来。审核机制既能跟踪失败记录也能跟踪成功记录。所有的数据库平台均在...

    实验九 SQL Server 安全管理

    安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到SQL Server,并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此安全性管理与用户管理是密不可分的。...

    SQL Server 2008 数据库中创建只读用户的方法

    在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用。 SQL Server 2008 Microsoft SQLServer ...

    sqlserver2000 事件探查器profiler

    这使得安全管理员得以复查任何审核事件,包括登录尝试的成功与失败,以及访问语句和对象的权限成功与失败。 SQL 事件探查器为用于监视 SQL Server 实例的一组存储过程提供图形用户界面。例如,可以创建您自己的应用...

    SQL.Server.2008管理员必备指南.part2.rar(2/4)

     7.4.1 在SQL Server Management Studio中设置数据库选项 171  7.4.2 使用ALTER DATABASE修改数据库 172  7.4.3 配置自动选项 176  7.4.4 在数据库级别上控制ASNI的兼容性 177  7.4.5 配置参数化 179  7.4.6 ...

    SQL Server 2008高级程序设计 4/6

    SQL Server 2008高级程序设计 4/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...

    SQL.Server.2008管理员必备指南.part1.rar(1/4)

     7.4.1 在SQL Server Management Studio中设置数据库选项 171  7.4.2 使用ALTER DATABASE修改数据库 172  7.4.3 配置自动选项 176  7.4.4 在数据库级别上控制ASNI的兼容性 177  7.4.5 配置参数化 179  7.4.6 ...

    SQL SERVER 2000开发与管理应用实例

    9.3.3 外部数据文件位置及文件访问权限问题 287 9.4 在客户端实现SQL Server数据导入与导出处理 288 9.4.1 在Access数据库中实现与SQL Server之间的数据交换 288 9.4.2 实现客户端其他OLE DB数据源与SQL ...

Global site tag (gtag.js) - Google Analytics