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 Server权限模型的核心。系统管理员可以进一步细分权限,将CREATE DATABASE权限授予其他用户,使他们成为新的数据库所有者。数据库所有者可以授予用户在数据库内的各种操作权限,比如创建表...
SqlServer用户权限设置分为两个主要步骤,首先是创建登录名,其次是给登录名授予权限。 创建登录名是用户权限设置的第一步,这一步骤的目的是创建一个数据库用户账户。只有创建了登录名,用户才能被赋予访问数据库...
本主题将深入探讨如何使用SQL语句进行数据库权限设置,以及SQL Server中的权限层次结构。 首先,我们需要理解SQL Server中的权限体系。权限分为两大类:对象权限和服务器权限。对象权限针对数据库内的具体对象,如...
SQL Server 登陆权限操作是指在 SQL Server 中设置用户登录名和权限的操作,包括服务器角色权限和数据库权限。本文将详细介绍如何设置 Test 用户的权限,包括服务器角色的权限 dbcreate、能操作的数据库 Accp50 及...
针对这一问题,开发了“SQLServer 权限设置器”这一小应用程序,旨在简化和优化这一过程。 该应用程序的主要功能可能是为SQL Server 2000数据库提供一个图形化的界面,使得管理员能够更直观、高效地分配和管理权限...
用户权限管理是 SQL Server 权限管理的第三步,包括服务器登录帐号和用户帐号管理、许可(权限)管理、角色管理等多个方面。 1. 服务器登录帐号和用户帐号管理:SQL Server 有三个默认的用户登录帐号:即 sa 、...
授予用户权限是最重要的一步,可以通过以下几种方式来实现: - **授予对整个数据库的权限**: ```sql EXEC sp_addrolemember 'db_owner', 'test' ``` - **授予对特定表或视图的权限**: ```sql GRANT SELECT,...
单用户模式是 Sql Server 的一种特殊模式,在这种模式下,Sql Server 只允许一个用户连接数据库,并且该用户拥有最高的权限。在单用户模式下,我们可以进行各种维护任务,如备份和还原数据库、修复数据库、更改...
本文通过一个实例实验,介绍了SYBASE SQL SERVER中用户权限的管理,包括基本概念、用户权限管理、实验数据库的建立、权限管理等,为读者提供了一个详细的SYBASE SQL SERVER用户权限管理的指南。
SQL Server 新建用户权限管理 SQL Server 是一个功能强大的关系数据库管理系统,它提供了丰富的用户管理和权限管理机制,以确保数据库的安全性和可靠性。在本文中,我们将详细介绍如何在 SQL Server 中新建用户、...
- **备份现有配置**:在进行任何数据库迁移之前,务必备份现有数据库的配置信息,包括登录名和用户权限等。 - **统一命名规则**:确保所有登录名和用户名采用一致的命名规则,方便迁移后的匹配工作。 - **预迁移测试...
在 SQL Server 中,创建数据库用户、赋予用户权限、管理数据库用户是非常重要的安全性设置。通过本文的介绍,用户可以学习如何使用 SQL 语句创建数据库用户,赋予用户权限,并对用户账户进行管理。 八、应用场景 ...
6. 安全管理:管理用户权限,设置角色,以及执行审计和安全策略。 综上所述,SQL Server连接工具是SQL Server生态系统中不可或缺的一部分,它们为数据库管理员和开发者提供了强大的支持,使得SQL Server的管理和...
在SQL Server中,掌握如何查看当前连接的在线用户数是一项重要的技能,这有助于数据库管理员(DBA)...通过定期监测在线用户数、特定用户活动以及适时调整权限设置,DBA能够更有效地应对各种挑战,保持系统健康稳定。
在 SQL Server 中,角色是一种非常重要的安全机制,它允许管理员对一组用户进行统一的权限管理。通过角色,可以将特定的权限授予角色成员,从而避免了逐一为每个用户分配权限的繁琐过程。 **1.2 角色类型** SQL ...
这通常涉及到检查涉及的角色和用户的权限设置。使用系统存储过程`sp_helprotect`或`sys.database_role_members`和`sys.database_permissions`等系统视图可以帮助查询特定对象上的权限设置。例如,如果一个用户`sale1...
在SQL Server中,权限管理主要通过登录、用户、角色和权限分配实现。登录是服务器级别的实体,用于控制对SQL Server实例的访问。可以创建基于Windows身份验证的登录,也可以使用SQL Server身份验证模式,后者需要...
在SQL Server 2012中,虽然主要推荐使用SQL Server Native Client 11.0,但为了兼容旧版本的SQL Server,如SQL Server 2000,仍然需要使用SQL Server Native Client 10.0。 **1. ODBC与OLE DB接口** - **ODBC**: ...
在SQL Server中,数据库用户是数据库级别的主体,它们控制着对特定数据库的访问权限。通常,一个登录名登录到SQL Server实例后,还需要创建对应的数据库用户才能访问指定的数据库。这是因为数据库用户是与登录名映射...
### SQL Server 2005 和 2008 中设置发送邮件的知识点 #### SQL Server 2005 邮件通知设置步骤 在SQL Server 2005中,为了实现在作业(Job)运行后自动发送邮件通知,可以按照以下步骤进行设置: 1. **启用数据库...