[转载]
原文地址: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 [用户名]
原文地址: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 [用户名]
发表评论
-
table拆分
2010-09-08 14:23 828oracle: insert all when 条件1 t ... -
用户无权登录PL/SQL Dev
2010-07-27 09:25 1382[转载]http://hi.baidu.com/xxoo_0/ ... -
查询存储过程中调用表情况(oracle)
2010-07-06 14:36 2126使用下列语句可以查询存储过程中引用了哪些表. select ... -
Oracle10g的SQL正则表达式支持
2010-01-19 10:56 1479[转自:http://database.51cto.com/a ... -
sql运行效率查询(oracle)
2009-09-27 17:54 1032SELECT EXECUTIONS, DISK_ ... -
查询表结构(oracle)
2009-09-23 17:18 20681.简略: select * from ALL_TAB_COL ... -
oracle if语句
2009-05-07 14:25 11808oracle 的 if语句比较特殊,没有else if,而是使 ... -
oracle 日期相关(连载中...)
2009-04-24 13:33 9571.下周周几为哪天: 取得下周周五日期: select nex ... -
修改 sql server 排序规则
2009-03-24 17:49 5502[转载] sql排序规则 如果要是区分大小写的话,就要改变数据 ... -
窄表变宽表方式
2009-03-24 10:18 49301.使用decode,根据窄表某字段的值,来判断作为宽表的哪个 ... -
oracle中java类的使用
2009-03-20 16:29 963java类创建: create or replace and ... -
oracle函数整合
2009-03-10 16:18 833oracle函数: 1.方差VARIANCE 2.绝对值AB ... -
排序(oracle)
2009-03-09 12:14 859根据INVT_PROD_ID和START_DT,按照ANN_D ... -
存储过程中游标使用
2009-03-04 14:08 1146oracle: 1.静态游标 create or replac ... -
oracle表空间创建语句
2009-03-02 10:08 1925常规表空间: CREATE SMALLFILE TA ... -
查询表空间大小(oracle)
2009-02-24 16:31 2575查询一般表空间: SELECT a.tablespace_na ... -
sqlserver导出数据到excel
2009-02-23 16:09 1264使用命令: exec rms..xp_cmdshell 'b ... -
数据库操作技巧
2009-02-18 10:34 9011.临时复制表及数据(oracle): create tabl ... -
根据相同主键,合并其他字段值,形成一条记录(oracle)
2009-02-17 17:48 5917将具有相同的主键INVT_PROD_ID值,其他列值CLAUS ... -
存储过程错误消息处理
2009-02-17 17:43 1080存储过程错误消息处理(放在事务回滚rollback之前): - ...
相关推荐
SqlServer 用户权限设置是数据库管理系统中的一项重要功能,它允许数据库管理员控制用户对数据库的访问权限和操作权限。通过设置用户权限,数据库管理员可以限制用户对数据库的访问,防止非法操作和数据泄露。 在 ...
在本文中,我们将详细介绍如何使用 SQLSERVER 远程访问 Access 数据库,包括对 Access 数据库的加密和权限设置、SQLSERVER 的链接数据库配置、远程访问的设置和测试等。 一、Access 数据库的加密和权限设置 在使用...
在SQL Server数据库管理系统中,权限控制是至关重要的,它确保了数据的安全性和访问的合规性。本主题将深入探讨如何使用SQL语句进行数据库权限设置,以及SQL Server中的权限层次结构。 首先,我们需要理解SQL ...
在SQL Server中,用户管理和权限控制是确保系统安全和数据保护的重要组成部分。SQL Server的用户主要分为两类:SQL服务器用户(登录账号)和数据库用户。安装完毕后,系统默认创建一个名为sa的SQL服务器用户,它是...
SQL Server 登陆权限操作是指在 SQL Server 中设置用户登录名和权限的操作,包括服务器角色权限和数据库权限。本文将详细介绍如何设置 Test 用户的权限,包括服务器角色的权限 dbcreate、能操作的数据库 Accp50 及...
1. 角色管理:允许用户创建、编辑和删除数据库角色,然后批量分配权限给这些角色,而非逐一为每个用户设置权限,大大提高了工作效率。 2. 用户管理:轻松添加、删除和修改数据库用户,同时可以快速关联已定义的角色...
访问许可确认是 SQL Server 权限管理的第二步,即使用户通过了认证阶段,但是他还必须通过许可确认,才能够访问 SQL Server 中的数据。用户只有在具有访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下...
### SQL Server 2005 创建用户并授予权限详解 #### 一、概述 在 SQL Server 2005 中,为了确保数据的安全性和完整性,管理员需要能够有效地管理数据库用户及其相应的权限。本文将详细介绍如何在 SQL Server 2005 中...
8. **权限测试**:使用xp_cmdshell存储过程测试SQL Server对Exchange Server的访问权限,确保账户有访问Exchange Server的权限。 这些步骤详细地解释了如何在不同的SQL Server版本中设置邮件通知,包括SQL Server ...
对于远程访问和跨平台需求,我们可以使用SQL Server的Web版管理工具,如Azure Data Studio。它是一款轻量级且跨平台的工具,支持Windows、macOS和Linux,提供类似SSMS的功能,但更加专注于云和现代数据库工作流。...
* 企业可以使用数据库用户来控制数据库中的访问权限。 九、结论 本文详细介绍了 SQL Server 数据库用户授权的过程,包括创建登陆帐户、创建数据库用户、赋予数据库用户权限、管理数据库用户和删除数据库用户等。...
SQL Server采用基于角色的访问控制(RBAC)机制,允许管理员创建角色并将用户添加到这些角色中,从而简化权限分配和管理。权限可以授予用户、角色或公共组(public)。此外,权限可以是显式的(直接授予对象)或隐式...
### SQL Server 数据库迁移孤立用户的解决方法 在进行SQL Server数据库迁移时,经常会遇到一个棘手的问题:迁移完成后,部分用户无法与原有的登录名相对应,导致这些用户成为“孤立用户”。这种情况下,用户虽然...
如果是非域环境,可以打开组策略,计算机配置----》windows 设置----》用户权限分配,找到“内存中锁定页面”,添加能够运行sqlserver.exe的用户。如果是域环境,可以从管理工具打开域安全策略,域控制器安全策略---...
SQL Server Native Client 10.0 是微软为SQL Server 2008和2008 R2设计的一个数据库访问接口,它集成了ODBC(Open Database Connectivity)和OLE DB(Object Linking and Embedding, Database)接口。在SQL Server ...
用户可以被授予对特定数据库的访问权限,并且可以通过角色进行权限的批量分配。SQL Server的角色有固定服务器角色和固定数据库角色两种。固定服务器角色如sysadmin,包含了广泛的系统管理权限,而固定数据库角色如db...
SQL Server提供了多种角色,用于控制不同级别的访问权限,确保数据安全和系统稳定: - **sysadmin**:拥有最高权限,可以执行任何操作。 - **serveradmin**:可以进行服务器级的管理,如安装、配置等。 - **...
SQL Server 新建用户权限管理 SQL Server 是一个功能强大的关系数据库管理系统,它提供了丰富的...通过这些步骤,我们可以轻松地新建用户,并授予该用户相应的权限和数据库访问权限,以确保数据库的安全性和可靠性。
接着,使用此用户身份启动SQL Server服务,并在SQL Server Management Studio中,设置“使用AWE分配内存”选项,以确保数据库服务能够访问并利用大内存。 #### 实施效果 通过上述步骤,SQL Server成功启用了大内存...