sql server 用户访问权限设置

合集下载

sql server 服务账户和权限管理配置

sql server 服务账户和权限管理配置

大多数服务及其属性可通过使用SQL Server 配置管理器进行配置。

以下是在C 盘安装Windows 的情况下最新的四个版本的路径。

安装的服务SQL Server根据您决定安装的组件,SQL Server 安装程序将安装以下服务:∙SQL Server Database Services - 用于SQL Server 关系数据库引擎的服务。

可执行文件为<MSSQLPATH>\MSSQL\Binn\sqlservr.exe。

∙SQL Server 代理 - 执行作业、监视SQL Server、激发警报以及允许自动执行某些管理任务。

SQL Server 代理服务在SQL Server Express 的实例上存在,但处于禁用状态。

可执行文件为<MSSQLPATH>\MSSQL\Binn\sqlagent.exe。

∙Analysis Services - 为商业智能应用程序提供联机分析处理(OLAP) 和数据挖掘功能。

可执行文件为<MSSQLPATH>\OLAP\Bin\msmdsrv.exe。

∙Reporting Services - 管理、执行、创建、计划和传递报表。

可执行文件为<MSSQLPATH>\ReportingServices\ReportServer\Bin\ReportingServicesService.exe。

∙Integration Services - 为Integration Services 包的存储和执行提供管理支持。

可执行文件的路径是<MSSQLPATH>\130\DTS\Binn\MsDtsSrvr.exe ∙SQL Server Browser - 向客户端计算机提供SQL Server 连接信息的名称解析服务。

可执行文件的路径为c:\Program Files (x86)\Microsoft SQLServer\90\Shared\sqlbrowser.exe∙全文搜索 - 对结构化和半结构化数据的内容和属性快速创建全文索引,从而为SQL Server 提供文档筛选和断字功能。

SQL Server 权限管理手册说明书

SQL Server 权限管理手册说明书

Top Level Server PermissionsDatabase Level PermissionsALTER ANY APPLICATION ROLE ALTER ANY ASSEMBLY ALTER ANY ASYMMETRIC KEY ALTER ANY CERTIFICATE ALTER ANY CONTRACTALTER ANY DATABASE AUDIT ALTER ANY DATABASE DDL TRIGGERALTER ANY DATABASE EVENT NOTIFICATION ALTER ANY DATASPACEALTER ANY FULLTEXT CATALOGALTER ANY MESSAGE TYPEALTER ANY REMOTE SERVICE BINDING ALTER ANY ROLE ALTER ANY ROUTE ALTER ANY SCHEMA ALTER ANY SERVICE ALTER ANY SYMMETRIC KEYALTER ANY USER –See Connect and Authentication –Database Permissions ChartCREATE AGGREGATE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE QUEUE CREATE RULE CREATE SYNONYM CREATE TABLE CREATE TYPE CREATE VIEWCREATE XML SCHEMA COLLECTIONTop Level Database PermissionsCONTROL ON DATABASE::<name>CREATE ASSEMBLY CREATE ASYMMETRIC KEY CREATE CERTIFICATE CREATE CONTRACTCREATE DATABASE DDL EVENT NOTIFICATIONCREATE FULLTEXT CATALOG CREATE MESSAGE TYPECREATE REMOTE SERVICE BINDING CREATE ROLE CREATE ROUTE CREATE SCHEMA CREATE SERVICE CREATE SYMMETRIC KEYAUTHENTICATE BACKUP DATABASE BACKUP LOG CHECKPOINTCONNECT REPLICATION DELETE EXECUTE INSERT REFERENCES SELECT UPDATEVIEW DEFINITION TAKE OWNERSHIP SHOWPLANSUBSCRIBE QUERY NOTIFICATIONS VIEW DATABASE STATECONTROL SERVERCONNECT DATABASESTATEMENTS:CREATE DATABASE AUDIT SPECIFICATION CREATE/ALTER/DROP database triggersPARTITION & PLAN GUIDE statementsSTATEMENTS:Combined with TRUSTWORTHY allows delegation of authentication BACKUP DATABASE BACKUP LOG CHECKPOINTCREATE ANY DATABASE ALTER ANY DATABASEALTER ANY SERVER AUDIT ALTER ANY EVENT NOTIFICATIONAUTHENTICATE SERVERVIEW ANY DEFINITIONALTER TRACEVIEW SERVER STATE STATEMENTS:Applies to subordinate objects in the database. See Database Permissions –Schema Objects chart.TAKE OWNERSHIP ON OBJECT|TYPE|XML SCHEMA COLLECTION::<name>RECEIVE ON OBJECT::<queue name>SELECT ON OBJECT::<queue name>VIEW CHANGE TRACKING ON OBJECT::<name> SELECT ON OBJECT::<table |view name>INSERT ON OBJECT::< table |view name> UPDATE ON OBJECT::< table |view name> DELETE ON OBJECT::< table |view name>EXECUTE ON OBJECT|TYPE|XML SCHEMA COLLECTION::<name> REFERENCES ON OBJECT|TYPE|XML SCHEMA COLLECTION:<name> VIEW DEFINITION ON OBJECT|TYPE|XML SCHEMA COLLECTION::<name>ALTER ON OBJECT|TYPE|XML SCHEMA COLLECTION::<name>TAKE OWNERSHIP ON SCHEMA::<name>VIEW CHANGE TRACKING ON SCHEMA::<name>SELECT ON SCHEMA::<name>INSERT ON SCHEMA::<name>UPDATE ON SCHEMA::<name>DELETE ON SCHEMA::<name>EXECUTE ON SCHEMA::<name>REFERENCES ON SCHEMA::<name>VIEW DEFINITION ON SCHEMA::<name>ALTER ON SCHEMA::<name>CREATE SEQUENCESELECT ON DATABASE::<name>INSERT ON DATABASE::<name>UPDATE ON DATABASE::<name>DELETE ON DATABASE::<name>EXECUTE ON DATABASE::<name>REFERENCES ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>TAKE OWNERSHIP ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY SCHEMACREATE SCHEMACREATE AGGREGATE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE QUEUE CREATE RULE CREATE SYNONYM CREATE TABLE CREATE TYPE CREATE VIEWCREATE XML SCHEMA COLLECTIONVIEW ANY DEFINITIONVIEW ANY DATABASEALTER ANY DATABASEServer PermissionsDatabase PermissionsSchema PermissionsObject Permissions Type PermissionsXML Schema Collection PermissionsDatabase Permissions –Schema ObjectsNotes:•To create a schema object (such as a table) you must have CREATE permission for that object type plus ALTER ON SCHEMA::<name> for the schema of the object. Might require REFERENCES ON OBJECT::<name> for any referenced CLR type or XML schema collection.•To alter an object (such as a table) you must have ALTER permission on the object (or schema ),or CONTROL permission on the object.CONTROL ON SERVERCONTROL ON DATABASE::<name>CONTROL ON SCHEMA ::<name>CONTROL ON OBJECT|TYPE|XML SCHEMA COLLECTION ::<name>OBJECT permissions apply to the following database objects:AGGREGATE DEFAULT FUNCTION PROCEDURE QUEUE RULE SYNONYM TABLE VIEW(All permissions do not apply to all objects. For example UPDATE only applies to tables and views.)•To drop an object (such as a table) you must have ALTER permission on the schema or CONTROL permission on the object.•To create an index requires ALTER OBJECT::<name> permission on the table or view.•To create or alter a trigger on a table or view requires ALTER OBJECT::<name> on the table or view.•To create statistics requires ALTER OBJECT::<name> on the table or view.CONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASECONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY FULLTEXT CATALOGCREATE FULLTEXT CATALOG Certificate PermissionsFull-text PermissionsAssembly PermissionsQuestions and comments to ************************Server Role PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY SERVER ROLEVIEW DEFINITION ON SERVER ROLE::<name>TAKE OWNERSHIP ON SERVER ROLE::<name>ALTER ON SERVER ROLE::<name>CONTROL ON SERVER ROLE::<name>Most permission statements have the format :AUTHORIZATION PERMISSION ON SECURABLE::NAME TO PRINCIPAL•AUTHORIZATION must be GRANT, REVOKE or DENY.•PERMISSION is listed in the charts below.•ON SECURABLE::NAME is the server, server object, database, or database object and its name. Some permissions do not require ON SECURABLE::NAME.•PRINCIPAL is the login, user, or role which receives or loses the permission. Grant permissions to roles whenever possible.Sample grant statement: GRANT UPDATE ON OBJECT::Production.Parts TO PartsTeam Denying a permission at any level, overrides a related grant.To remove a previously granted permission, use REVOKE, not DENY.NOTES:•The CONTROL SERVER permission has all permissions on the instance of SQL Server.•The CONTROL DATABASE permission has all permissions on the database.•Permissions do not imply role memberships and role memberships do not grant permissions. (E.g. CONTROL SERVER does not imply membership in the sysadmin fixed server role. Membership in the db_owner role does not grant the CONTROL DATABASE permission.) However, it is sometimes possible to impersonate between roles and equivalent permissions.•Granting any permission on a securable allows VIEW DEFINITION on that securable. It is an implied permissions and it cannot be revoked, but it can be explicitly denied by using the DENY VIEW DEFINITION statement.Server Level PermissionsNotes:•Creating a full-text index requires ALTER permission on the table and REFERENCES permission on the full-text catalog.•Dropping a full-text index requires ALTER permission on the table.STATEMENTS:DROP DATABASEMarch 28, 2014How to Read this Chart•Most of the more granular permissions are included in more than one higher level scope permission. So permissions can be inherited from more than one type of higher scope.•Black, green, and blue arrows and boxes point to subordinate permissions that are included in the scope of higher a level permission.•Brown arrows and boxes indicate some of the statements that can use the permission.CREATE SERVER ROLEAvailability Group PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY AVAILABILITY GROUPVIEW DEFINITION ON AVAILABILITY GROUP::<name>TAKE OWNERSHIP ON AVAILABILITY GROUP::<name>ALTER ON AVAILABILITY GROUP::<name>CONTROL ON AVAILABILITY GROUP::<name>CREATE AVAILABILITY GROUPADMINISTER BULK OPERATIONSALTER ANY AVAILABILITY GROUP –See Availability Group PermissionsCREATE AVAILABILTY GROUPALTER ANY CONNECTION ALTER ANY CREDENTIALALTER ANY DATABASE –See Database Permission ChartsCREATE ANY DATABASE –See Top Level Database PermissionsALTER ANY ENDPOINT –See Connect and AuthenticationCREATE ENDPOINT –See Connect and AuthenticationALTER ANY EVENT NOTIFICATIONCREATE DDL EVENT NOTIFICATION CREATE TRACE EVENT NOTIFICATIONALTER ANY EVENT SESSION ALTER ANY LINKED SERVERALTER ANY LOGIN –See Connect and Authentication ALTER ANY SERVER AUDITALTER ANY SERVER ROLE –See Server Role PermissionsCREATE SERVER ROLE –See Server Role PermissionsALTER RESOURCES (Not used. Use diskadmin fixed server role instead.)ALTER SERVER STATEVIEW SERVER STATEALTER SETTINGS ALTER TRACEAUTHENTICATE SERVERCONNECT SQL –See Connect and Authentication CONNECT ANY DATABASE IMPERSONATE ANY LOGIN SELECT ALL USER SECURABLES SHUTDOWN UNSAFE ASSEMBLYEXTERNAL ACCESS ASSEMBLYVIEW ANY DEFINITIONVIEW ANY DATABASE –See Database Permissions –Schema* NOTE:The SHUTDOWN statement requires the SQL Server SHUTDOWN permission. Starting, stopping, and pausing the Database Engine from SSCM, SSMS, or Windows requires Windows permissions, not SQL Server permissions.STATEMENTS:CREATE/ALTER/DROP server triggers OPENROWSET(BULK….KILL CREATE/ALTER/DROP CREDENTIAL DBCC FREE…CACHE and SQLPERF SELECT on server-level DMV’s sp_configure, RECONFIGURE sp_create_traceAllows server-level delegationCONTROL SERVERSTATEMENTS:CREATE/ALTER/DROP server triggers OPENROWSET(BULK …KILLServer scoped event notifications Server scoped DDL event notifications Event notifications on trace events Extended event sessions sp_addlinkedserverDBCC FREE…CACHE and SQLPERF SELECT on server-level DMV’s sp_configure, RECONFIGURE sp_trace_create Allows server-level delegation SHUTDOWN*CREATE/ALTER/DROP SERVER AUDIT and SERVER AUDIT SPECIFICATION CONTROL SERVERVIEW ANY DEFINITION ALTER ANY LOGINCONNECT SQLCONTROL ON LOGIN::<name>Connect and Authentication –Server PermissionsVIEW ANY DEFINITIONALTER ANY ENDPOINTCREATE ENDPOINTCONNECT ON ENDPOINT::<name>TAKE OWNERSHIP ON ENDPOINT::<name>VIEW DEFINITION ON ENDPOINT::<name>ALTER ON ENDPOINT::<name>CONTROL ON ENDPOINT::<name>Notes:•The CREATE LOGIN statement creates a login and grants CONNECT SQL to that login.•Enabling a login (ALTER LOGIN <name> ENABLE) is not the same as granting CONNECT SQL permission.•To map a login to a credential, see ALTER ANY CREDENTIAL.•When contained databases are enabled, users can access SQL Server without a login. See database user permissions.•To connect using a login you must have :o An enabled login o CONNECT SQLoCONNECT for the database (if specified)VIEW DEFINITION ON LOGIN::<name>IMPERSONATE ON LOGIN::<name>ALTER ON LOGIN::<name>STATEMENTS:ALTER LOGIN, sp_addlinkedsrvlogin DROP LOGIN CREATE LOGINSTATEMENTS:ALTER ENDPOINT DROP ENDPOINTCREATE ENDPOINTSTATEMENTS:ALTER SERVER ROLE <name> ADD MEMBER DROP SERVER ROLECREATE SERVER ROLESTATEMENTS:ALTER AVAILABILITY GROUP DROP AVAILABILITY GROUPCREATE AVAILABILITY GROUPCONTROL ON FULLTEXT CATALOG::<name>VIEW DEFINITION ON FULLTEXT CATALOG::<name>REFERENCES ON FULLTEXT CATALOG::<name>TAKE OWNERSHIP ON FULLTEXT CATALOG::<name>ALTER ON FULLTEXT CATALOG::<name>STATEMENTS:ALTER FULLTEXT CATALOG CREATE FULLTEXT CATALOGDatabase Role PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY ROLE CREATE ROLE CONTROL ON DATABASE::<name>VIEW DEFINITION ON ROLE::<name>TAKE OWNERSHIP ON ROLE::<name>ALTER ON ROLE::<name>CONTROL ON ROLE::<name>STATEMENTS:ALTER ROLE <name> ADD MEMBER DROP ROLECREATE ROLESymmetric Key PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY SYMMETRIC KEYCREATE SYMMETRIC KEY CONTROL ON DATABASE::<name>VIEW DEFINITION ON SYMMETRIC KEY::<name>REFERENCES ON SYMMETRIC KEY::<name>TAKE OWNERSHIP ON SYMMETRIC KEY::<name>ALTER ON SYMMETRIC KEY::<name>CONTROL ON SYMMETRIC KEY::<name>STATEMENTS:ALTER SYMMETRIC KEY DROP SYMMETRIC KEY CREATE SYMMETRIC KEYNote: OPEN SYMMETRIC KEY requires VIEW DEFINITION permission on the key (implied by any permission on the key), and requires permission on the key encryption hierarchy.Asymmetric Key PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY ASYMMETRIC KEYCREATE ASYMMETRIC KEYCONTROL ON DATABASE::<name>VIEW DEFINITION ON ASYMMETRIC KEY::<name>REFERENCES ON ASYMMETRIC KEY::<name>TAKE OWNERSHIP ON ASYMMETRIC KEY::<name>ALTER ON ASYMMETRIC KEY::<name>CONTROL ON ASYMMETRIC KEY::<name>STATEMENTS:ALTER ASYMMETRIC KEY DROP ASYMMETRIC KEYCREATE ASYMMETRIC KEYNote: ADD SIGNATURE requires CONTROL permission on the key, andrequires ALTER permission on the object.CONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY CERTIFICATE CREATE CERTIFICATE CONTROL ON DATABASE::<name>VIEW DEFINITION ON CERTIFICATE::<name>REFERENCES ON CERTIFICATE::<name>TAKE OWNERSHIP ON CERTIFICATE::<name>ALTER ON CERTIFICATE::<name>CONTROL ON CERTIFICATE::<name>STATEMENTS:ALTER CERTIFICATE DROP CERTIFICATECREATE CERTIFICATENote: ADD SIGNATURE requiresCONTROL permission on the certificate, and requires ALTER permission on the object.CONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY ASSEMBLY CREATE ASSEMBLYCONTROL ON DATABASE::<name>VIEW DEFINITION ON ASSEMBLY::<name>REFERENCES ON ASSEMBLY::<name>TAKE OWNERSHIP ON ASSEMBLY::<name>ALTER ON ASSEMBLY::<name>CONTROL ON ASSEMBLY::<name>STATEMENTS:ALTER ASSEMBLYDROP ASSEMBLYCREATE ASSEMBLYEvent Notification PermissionsCONTROL SERVERALTER ANY EVENT NOTIFICATIONCREATE DDL EVENT NOTIFICATIONCREATE TRACE EVENT NOTIFICATIONALTER ON DATABASE::<name>ALTER ANY DATABASE EVENT NOTIFICATION CREATE DATABASE DDL EVENT NOTIFICATIONCONTROL ON DATABASE::<name>Database scoped event notificationsDatabase scoped DDL event notificationsEvent notifications on trace eventsNote: EVENT NOTIFICATION permissions also affect service broker. See the service broker chart for more into.Connect and Authentication –Database PermissionsCONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASEVIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY USER CONNECT ON DATABASE::<name>CONTROL ON DATABASE::<name>VIEW DEFINITION ON USER::<name>IMPERSONATE ON USER::<name>ALTER ON USER::<name>CONTROL ON USER::<name>STATEMENTS:ALTER USER DROP USER CREATE USERNOTES:•When contained databases are enabled, creating a database user that authenticates at the database, grants CONNECT DATABASE to that user,and it can access SQL Server without a login.•Granting ALTER ANY USER allows a principal to create a user based on a login, but does not grant the server level permission to view information about logins.Replication PermissionsCONTROL SERVERCONTROL ON DATABASE::<name>CONNECT REPLICATION ON DATABASE::<name>CONNECT ON DATABASE::<name>Application Role PermissionsCONTROL SERVERVIEW ANY DEFINITION ALTER ANY DATABASE CONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY APPLICATION ROLECONTROL ON APPLICATION ROLE::<name>VIEW DEFINITION ON APPLICATION ROLE::<name>ALTER ON APPLICATION ROLE::<name>STATEMENTS:ALTER APPLICATION ROLE DROP APPLICATION ROLE CREATE APPLICATION ROLESTATEMENTS:DROP FULLTEXT CATALOG DROP FULLTEXT STOPLISTDROP FULLTEXT SEARCH PROPERTYLISTCONTROL ON FULLTEXT STOPLIST::<name>VIEW DEFINITION ON FULLTEXT STOPLIST::<name>REFERENCES ON FULLTEXT STOPLIST::<name>TAKE OWNERSHIP ON FULLTEXT STOPLIST::<name>ALTER ON FULLTEXT STOPLIST::<name>STATEMENTS:ALTER FULLTEXT STOPLIST CREATE FULLTEXT STOPLISTCONTROL ON SEARCH PROPERTY LIST::<name>VIEW DEFINITION ON SEARCH PROPERTY LIST::<name>REFERENCES ON SEARCH PROPERTY LIST::<name>TAKE OWNERSHIP ON SEARCH PROPERTY LIST::<name>ALTER ON SEARCH PROPERTY LIST::<name>STATEMENTS:ALTER SEARCH PROPERTY LIST CREATE SEARCH PROPERTY LISTService Broker PermissionsNotes:•The user executing the CREATE CONTRACT statement must have REFERENCES permission on all message typesspecified.•The user executing the CREATE SERVICE statement must have REFERENCES permission on the queue and allcontracts specified.•To execute the CREATE or ALTER REMOTE SERVICE BINDING the user must have impersonate permission forthe principal specified in the statement.•When the CREATE or ALTER MESSAGE TYPE statement specifies a schema collection, the user executing thestatement must have REFERENCES permission on the schema collection specified.•See the ALTER ANY EVENT NOTIFICATION chart for more permissions related to Service Broker.•See the SCHEMA OBJECTS chart for QUEUE permissions.•The ALTER CONTRACT permission exists but at this time there is no ALTER CONTRACT statement.CONTROL ON REMOTE SERVICE BINDING::<name>VIEW DEFINITION ON REMOTE SERVICE BINDING::<name>TAKE OWNERSHIP ON REMOTE SERVICE BINDING::<name>ALTER ON REMOTE SERVICE BINDING::<name>STATEMENTS:ALTER REMOTE SERVICE BINDINGDROP REMOTE SERVICE BINDINGCREATE REMOTE SERVICE BINDINGCONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASECONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY REMOTE SERVICE BINDINGCREATE REMOTE SERVICE BINDINGCONTROL ON CONTRACT::<name>VIEW DEFINITION ON CONTRACT::<name>REFERENCES ON CONTRACT::<name>TAKE OWNERSHIP ON CONTRACT::<name>ALTER ON CONTRACT::<name>STATEMENTS:DROP CONTRACTCREATE CONTRACTCONTROL SERVER VIEW ANY DEFINITIONALTER ANY DATABASECONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY CONTRACTCREATE CONTRACTCONTROL ON SERVICE::<name>VIEW DEFINITION ON SERVICE::<name>SEND ON SERVICE::<name>TAKE OWNERSHIP ON SERVICE::<name>ALTER ON SERVICE::<name>STATEMENTS:ALTER SERVICE DROP SERVICECREATE SERVICECONTROL SERVERVIEW ANY DEFINITION ALTER ANY DATABASE CONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY SERVICECREATE SERVICESTATEMENTS:ALTER ROUTE DROP ROUTE CREATE ROUTECONTROL SERVERVIEW ANY DEFINITIONALTER ANY DATABASECONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY ROUTECREATE ROUTE CONTROL ON ROUTE::<name>VIEW DEFINITION ON ROUTE::<name>TAKE OWNERSHIP ON ROUTE::<name>ALTER ON ROUTE::<name>STATEMENTS:ALTER MESSAGE TYPEDROP MESSAGE TYPE CREATE MESSAGE TYPECONTROL SERVER VIEW ANY DEFINITIONALTER ANY DATABASECONTROL ON DATABASE::<name>VIEW DEFINITION ON DATABASE::<name>REFERENCES ON DATABASE::<name>ALTER ON DATABASE::<name>ALTER ANY MESSAGE TYPECREATE MESSAGE TYPECREATE QUEUECONTROL ON MESSAGE TYPE::<name>VIEW DEFINITION ON MESSAGE TYPE::<name>REFERENCES ON MESSAGE TYPE::<name>TAKE OWNERSHIP ON MESSAGE TYPE::<name>ALTER ON MESSAGE TYPE::<name>Permission SyntaxCREATE DATABASE **ALTER ON DATABASE::<name>STATEMENTS: CREATE DATABASE, RESTORE DATABASE** NOTE:CREATE DATABASE is a database level permissionthat can only be granted in the master database.STATEMENTS:EXECUTE ASSTATEMENTS:EXECUTE ASSTATEMENTS:ALTER AUTHORIZATIONNotes:•ALTER AUTHORIZATION for any object might also require IMPERSONATE or membership in a role or ALTER permission on a role.•ALTER AUTHORIZATION exists at many levels in the permission model but is never inherited from ALTER AUTHORIZATION at a higher level.Note: CREATE and ALTER ASSEMBLY statements sometimes require server level EXTERNAL ACCESS ASSEMBLY and UNSAFE ASSEMBLY permissions, and can require membership in the sysadmin fixed server role.NOTES:Only members of the db_owner fixed database role can add or remove members from fixed database roles.NOTES:To add a member to a fixed server role, you must be a member of that fixed server role, or be a member of the sysadmin fixed server role.© 2014 Microsoft Corporation. All rights reserved.Database Engine PermissionsMicrosoft SQL Server 2014。

【原】SQLServer权限用户设置

【原】SQLServer权限用户设置

【原】SQLServer权限⽤户设置⼀、为什么要设置权限⽤户windows 验证登陆,只能在本机访问,⽤sqlserver验证登陆(也就是sa登陆),可以在局域⽹任意⼀台电脑访问登陆。

由于某种原因,给其他软件或者数据库开放接⼝,给对⽅⼀个账号但是要限制对⽅的访问权限的时候,就需要设置权限⽤户。

⼆、怎么去设置权限⽤户1、选择安全性---右击新建登录名(我们以test登录名为例)2、选择"常规"选项---设置你要新建的登录名---设置SQL Server⾝份验证密码---取消强制实施密码策略---选择⽬标数据库3、选择"服务器⾓⾊"--选择public服务器⾓⾊:服务器⾓⾊似乎是针对SQL Server登录名、Windows 帐户的,⽽某个数据库中建⽴的⽤户是不能具有服务器⾓⾊的。

例如:任何登录名建⽴后默认都是public服务器⾓⾊,public没有权限建⽴新的数据库;如果登录名具有dbcreator服务器⾓⾊,⽤它登录后,就可以创建新数据库;如果登录名具有securityadmin服务器⾓⾊,⽤它登录后,就可以管理其他登录名。

sysadmin 固定服务器⾓⾊的成员可以在服务器中执⾏任何活动serveradmin 固定服务器⾓⾊的成员可以更改服务器范围内的配置选项并关闭服务器securityadmin 固定服务器⾓⾊的成员管理登录名及其属性。

他们可以 GRANT、DENY 和 REVOKE 服务器级权限。

他们还可以GRANT、DENY 和 REVOKE 数据库级权限(如果他们具有数据库的访问权限)。

此外,他们还可以重置 SQL Server 登录名的密码。

processadmin 固定服务器⾓⾊的成员可以终⽌在 SQL Server 实例中运⾏的进程setupadmin 固定服务器⾓⾊的成员可以添加和删除链接服务器bulkadmin 固定服务器⾓⾊的成员可以运⾏ BULK INSERT 语句diskadmin 固定服务器⾓⾊⽤于管理磁盘⽂件dbcreator 固定服务器⾓⾊的成员可以创建、更改、删除和还原任何数据库public 每个 SQL Server 登录名均属于 public 服务器⾓⾊4、⽤户映射---选择要映射的数据库(也就是新建的登录名能访问那个数据库)---选择相应的数据库的操作权限数据库⾓⾊:作⽤范围数据,⽽⾮服务器(db_owner和 db_securityadmin 数据库⾓⾊的成员可以管理固定数据库⾓⾊成员⾝份。

SQL语句操作SQLSERVER数据库登录名、用户及权限

SQL语句操作SQLSERVER数据库登录名、用户及权限

SQL语句操作SQLSERVER数据库登录名、⽤户及权限要想成功访问 SQL Server 数据库中的数据,我们需要两个⽅⾯的授权:1. 获得准许连接 SQL Server 服务器的权利;2. 获得访问特定数据库中数据的权利(select, update, delete, create table ...)。

假设,我们准备建⽴⼀个 dba 数据库帐户,⽤来管理数据库 mydb。

1. ⾸先在 SQL Server 服务器级别,创建登陆帐户(create login)--创建登陆帐户(create login)create login dba with password='abcd1234@', default_database=mydb登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”。

这时候,dba 帐户就可以连接到 SQL Server 服务器上了。

但是此时还不能访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库⽤户⾝份,可以访问 guest 能够访问的数据库对象)。

要使 dba 帐户能够在 mydb 数据库中访问⾃⼰需要的对象,需要在数据库 mydb 中建⽴⼀个“数据库⽤户”,赋予这个“数据库⽤户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库⽤户” 映射起来。

习惯上,“数据库⽤户” 的名字和 “登陆帐户”的名字相同,即:“dba”。

创建“数据库⽤户”和建⽴映射关系只需要⼀步即可完成:2. 创建数据库⽤户(create user):--为登陆账户创建数据库⽤户(create user),在mydb数据库中的security中的user下可以找到新创建的dbacreate user dba for login dba with default_schema=dbo并指定数据库⽤户“dba” 的默认 schema 是“dbo”。

SqlServer设置用户只能查看并访问特定数据库

SqlServer设置用户只能查看并访问特定数据库

SqlServer设置用户只能查看并访问特定数据库
现需要限定特定的用户只能查看并访问特定的数据库,防止多个用户对数据库操作时一些误操作。

参考i6first的如何让用户只能访问特定的数据库(MSSQL)博文
1.新建登录用户
以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。

2.将服务器角色设置为public
3.将public服务器角色的属性->取消查看所有数据库的权限
点击安全性->服务器角色->public,右键属性。

点击服务器后如下图取消查看任意数据库的权限
或者执行如下SQL:
REVOKE VIEW ANY DATABASE TO [public]
4.将待授权的数据库的db_owner指派给刚注册的新用户
在数据库中新建查询,输入下列sql语句。

完成对用户权限的设定,做到了新建用户只能查看和操作特定数据库(除系统数据库外)Use [WH_R]//WH_R为数据库名称
go
EXEC dbo.sp_changedbowner N'user'//user为刚新建的用户
•1
•2
•3。

sql server 数据库用户权限管理的设置 -回复

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": {"field": "my_field","order": {"_key": "asc"}}}}}在上面的示例中,通过将order参数设置为"_key"和"asc"来按字母顺序对聚合结果进行排序。

SQL Server的用户权限管理

SQL Server的用户权限管理
的登陆用户是否对这些登陆用户有很详细的了解,这里所说的了解是指具体的用
途,比如:user_a只能
读某个数据库的某个表;user_b
可以读、写某个数据库的
某些表等。有些管理员为了偷懒省事,直接复给它个db_owner更有甚者给它
System Administrator
s权限,这样暂时虽然给您的操作
带来了方便,但同时也给
该数据库选择相应的
权限public,如果您还选择了db_owne
r,那么该用户就有了:添加、删除、修改
该数据库的权限,这里我们不选,目的是为了对数据库中的表单独设置具体的权
限。如图(三):
图(三)
点击确定。
2、打开刚才选择的数据库展开它->选择Users,在右边出现了我们刚才建立
的用户->属性(右键),如图(四):
图(一)
选择第二栏Server Roles,里面可以选择该用户的权限,需要注意的是,如
果您选择了System Administrators
,那么后面的Database Access栏就不用选
择了,因为此时你的权限最大可以做任何事,这里我们不选,如图(二):
图(二)
选择第三栏Database A
ccess选择要访问的数据库,为
hacker们带来了方便。:)。因此这里有一个建议:“在建立登陆用户时,把它
的详细用途用笔记下,然后整理,同时也为下次核查数据库的安全做了参考”
例如:
二、正确的建立SQL Server用户
1、打开SQL Server Enterprise Man
ager,在登陆中建立一个新的用户,在
General栏中,输入名字->选择登陆方式->输入密码->选择默认的数据库,如图(一):

sqlserver服务账户和权限管理配置培训资料

sqlserver服务账户和权限管理配置培训资料

sqlserver服务账户和权限管理配置培训资料SQL Server是一款常用的关系型数据库管理系统,用于存储、管理和操纵数据。

在企业中使用SQL Server时,确保服务账户和权限的正确配置非常重要。

本篇培训资料将介绍SQL Server服务账户和权限管理的基本概念以及具体配置方法。

一、SQL Server服务账户1. 什么是SQL Server服务账户SQL Server服务账户是SQL Server实例运行所需的Windows 账户,用于执行数据库引擎服务、代理服务和数据库服务,并提供运行时环境。

每个服务都需要独立的服务账户。

2. 服务账户的类型SQL Server服务账户分为本地账户和域账户两种类型:- 本地账户:仅限于本地服务器上使用,适用于独立服务器或测试环境。

- 域账户:存储在Windows域中的账户,可以跨多个服务器使用,适用于大规模企业环境。

3. 选择适当的服务账户在选择服务账户时应考虑以下几个因素:- 安全性:为了最大程度地保护数据库的安全,建议使用域账户,并遵循最少特权原则。

- 管理:使用域账户可以集中管理,并为不同的服务分配不同的账户,便于维护和审计。

- 高可用性:确保服务账户拥有适当的权限,以便支持SQLServer集群、镜像和Always On可用性组等功能。

二、SQL Server权限管理1. 什么是权限权限是指用户或用户组对数据库对象执行特定操作的能力。

SQL Server使用细粒度权限模型来管理数据库访问,确保只有经授权的用户可以执行特定操作。

2. 常见的权限类型- 基本权限:包括SELECT、INSERT、UPDATE、DELETE等,用于控制对表或视图的读写操作。

- DDL权限:用于控制对数据库结构的更改,如CREATE、ALTER和DROP等。

- 系统权限:用于控制对服务器级别的操作,如CREATE LOGIN、CREATE DATABASE和SHUTDOWN等。

sql server 账号权限限制表

sql server 账号权限限制表

SQL Server账号权限限制表一、背景介绍SQL Server是一种常用的关系型数据库管理系统,它为用户提供了丰富的数据管理和处理功能。

为了保护数据库的安全性和 integrity, 它采用了用户账号和权限的管理机制,以便对数据库的访问和操作进行控制。

一个用户在数据库中需要经过注册,而注册成功后的用户账户可以被授予不同的权限,以满足不同用户的需求。

二、权限管理的重要性数据库中的权限管理是保护数据安全的关键措施之一。

如果数据库的账号权限管理不到位,可能会导致数据泄露、恶意篡改甚至数据丢失等危险情况的发生。

建立一个严格的账户权限限制表是至关重要的。

三、账号权限限制表的内容为了对SQL Server中的账号权限进行合理的管理,我们需要建立一份账号权限限制表。

该表应包含以下内容:1. 用户账号:列出数据库中所有的用户账号。

2. 账号类型:标明每个用户账号的类型,如管理员账号、普通用户账号等。

3. 访问权限:明确每个账号的访问权限,包括对哪些数据库和哪些表的读、写、修改等权限。

4. 操作权限:详细列出每个账号的数据库操作权限,包括创建、删除、更新、备份等操作权限。

5. 特殊权限:如果有一些特殊权限需求,如视图的创建等,也应该在表中进行说明。

6. 备注:对每个账号的权限限制做出解释和说明,以便日后管理维护时参考。

四、权限限制表的更新和维护建立完账号权限限制表后,还需要进行定期的更新和维护。

随着数据库的使用和管理,用户账号的权限需求可能会发生变化。

需要及时更新权限限制表,并且对表中的权限进行审查,以确保数据库中的权限都是合理有效的。

五、总结建立一份完善的账号权限限制表,可以帮助数据库管理人员更好地对SQL Server中的账号权限进行管理和控制。

通过表中详细的记录,也可以在遇到权限问题时,迅速找到解决方案。

权限限制表不仅是数据库管理的一项重要工作,也是保障数据库安全的重要手段。

我们应该重视对权限限制表的建立、更新和维护工作。

sql server 用户访问权限设置

sql server 用户访问权限设置

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_testEXEC 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,默认数据库为pubsEXEC sp_addlogin 'l_test','pwd','pubs'--为登录 l_test 在数据库 pubs 中添加安全账户 u_testEXEC 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_testEXEC sp_droplogin 'l_test'--删除角色 r_testEXEC sp_droprole 'r_test'exec sp_dropsrvrolemember N'aa', sysadmingoexec sp_addsrvrolemember N'aa', securityadmingo--作好SQL的安全管理首先,做好用户安全:--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问) 1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server 和windows"--确定2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码3.删除用户:BUILTIN\Administrators<机器名>\Administrator --这个用户不一定有这样可以防止用windows身份登陆SQL4.设置进入企业管理器需要输入密码在企业管理器中--右键你的服务器实例(就是那个有绿色图标的)--编辑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 [用户名]。

sqlserver服务账户和权限管理配置

sqlserver服务账户和权限管理配置

大多数服务及其属性可通过使用SQLServer配置管理器进行配置。

以下是在C盘安装Windows 的情况下最新的四个版本的路径。

安装的服务SQLServer根据您决定安装的组件,SQLServer安装程序将安装以下服务:•SQLServerDatabaseServices-用于SQLServer关系数据库引擎的服务。

可执行文件为<MSSQLPATH>\MSSQL\Binn\sqlservr.exe。

•SQLServer代理-执行作业、监视SQLServer、激发警报以及允许自动执行某些管理任务。

SQLServer代理服务在SQLServerExpress的实例上存在,但处于禁用状态。

可执行文件为<MSSQLPATH>\MSSQL\Binn\sqlagent.exe。

•AnalysisServices-为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。

可执行文件为<MSSQLPATH>\OLAP\Bin\msmdsrv.exe。

•ReportingServices-管理、执行、创建、计划和传递报表。

可执行文件为<MSSQLPATH>\ReportingServices\ReportServer\Bin\ReportingServicesService.exe。

•IntegrationServices-为IntegrationServices包的存储和执行提供管理支持。

可执行文件的路径是<MSSQLPATH>\130\DTS\Binn\MsDtsSrvr.exe•SQLServerBrowser-向客户端计算机提供SQLServer连接信息的名称解析服务。

可执行文件的路径为c:\ProgramFiles(x86)\MicrosoftSQLServer\90\Shared\sqlbrowser.exe •全文搜索-对结构化和半结构化数据的内容和属性快速创建全文索引,从而为SQLServer 提供文档筛选和断字功能。

sqlserver登录名权限和用户名权限语句设置

sqlserver登录名权限和用户名权限语句设置

sqlserver登录名权限和⽤户名权限语句设置
在sqlserver的安全体系中分为登录名和⽤户名,登录名是⽤于登录整个数据库系统⽤的,⽤户名是针对各个具体的数据来创建的⽤户,所以针对权限设置要有这个两个⽤户进⾏分别设置,下⾯写下⽤语句设置这两个⽤户
1--创建登陆帐户(create login)
create login dba with password='abcd1234@', default_database=mydb
其中‘’dba‘’为账户的名称,后⾯是密码和默认要登录的数据库名称
2--为登陆账户创建数据库⽤户(create user),在mydb数据库中的security中的user下可以找到新创建的dba
create user dba for login dba with default_schema=dbo
做到这⼀步可以进⼊数据库,但是数据库的表是看不见的所以要进⾏下⾯的授权,我记录了两种,单个数据表授权和全部授权,⽬前我应⽤就这些,以后可能会补充
3--通过加⼊数据库⾓⾊,赋予数据库⽤户“db_owner”权限
exec sp_addrolemember 'db_owner', 'dba'
4单个数据库授权
GRANT ALL ON dbo.GeocodingInfor TO admin。

sqlserver给用户赋予访问数据库的权限的语句 -回复

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(具有对数据库的完全控制权)。

在此选择适当的角色,并单击“确定”。

第三步:授予特定对象的权限在完成前两个步骤后,用户将具有数据库级别的访问权限。

但是,如果您想给用户访问特定表、视图或存储过程的权限,您需要单独授予这些对象的权限。

您可以在“对象资源管理器”中找到特定的数据库对象(例如表、视图、存储过程等),然后右键点击该对象并选择“属性”。

sqlserver2008r2 权限管理说明

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. 层次化的权限控制:- SQL Server支持细粒度的权限控制,可以对数据库、表、列等级别进行权限的分配。

8. 视图和存储过程权限:-对于视图和存储过程,需要分别授予执行权限,使用GRANT语句。

9. 数据库角色和服务器角色:- SQL Server提供了数据库角色和服务器角色。

数据库角色仅对当前数据库有效,而服务器角色对整个SQL Server实例有效。

sqlserver给用户赋予访问数据库的权限的语句

sqlserver给用户赋予访问数据库的权限的语句

sqlserver给用户赋予访问数据库的权限的语句
要给用户赋予访问数据库的权限,你可以使用以下SQL 语句:
sql复制代码:
GRANT <权限> ON <数据库名>.<表名> TO <用户名>;
其中,<权限>是你要授予用户的权限,例如SELECT、INSERT、UPDATE、DELETE等。

<数据库名>是你要授权的数据库名称,<表名>是你要授权的表名称,<用户名>是你要授权的用户名称。

例如,如果你要授予用户"John"对数据库"MyDatabase"中的表"MyTable"的SELECT权限,可以使用以下语句:sql复制代码:
GRANT SELECT ON MyDatabase.MyTable TO John;
如果你想授予用户对整个数据库的访问权限,可以使用以下语句:
sql复制代码:
GRANT ALL PRIVILEGES ON <数据库名> TO <用户名>;
例如,如果你要授予用户"John"对数据库"MyDatabase"的所有权限,可以使用以下语句:
sql复制代码:
GRANT ALL PRIVILEGES ON MyDatabase TO John;
请注意,为了执行这些语句,你需要具有足够的权限来授予用户访问数据库的权限。

通常,这需要具有数据库管理员或具有适当权限的用户身份执行这些语句。

sql server 数据库用户权限管理的设置

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身份验证,设置登入名的权限和默认数据库。

2. 创建数据库用户在特定数据库中,使用管理员登入创建新的数据库用户,并将其与已有的登入名关联。

设置数据库用户的默认模式、权限和角色。

3. 授权用户权限对数据库中的对象(如表、视图、存储过程等)进行权限管理,包括授予查询、修改、删除等操作的权限。

可以通过SQL语句或图形化界面进行权限控制。

sql server 数据库用户权限管理的设置 -回复

sql server 数据库用户权限管理的设置 -回复

sql server 数据库用户权限管理的设置-回复SQL Server数据库用户权限管理的设置在SQL Server数据库中,用户权限的设置是非常重要的,它决定了用户可以执行哪些操作和访问哪些数据。

合理的权限管理可以提高数据库的安全性和数据的完整性,防止未经授权的用户对数据库进行恶意操作。

本文将一步一步回答关于SQL Server数据库用户权限管理的设置的问题。

第一步:创建用户在SQL Server中,我们需要先创建一个用户,才能为其设置权限。

创建用户的方法有多种,最简单的方法是使用SQL Server Management Studio(SSMS)界面来完成。

在SSMS中,选择要创建用户的数据库,右键点击“Security”文件夹,选择“New”-“User”选项。

在弹出的对话框中,输入用户的名称、登录名和密码,并为其选择默认模式和登录类型。

点击“OK”按钮,即可成功创建用户。

第二步:分配基本权限在用户创建完成之后,我们需要分配一些基本权限给用户,以便其能够对数据库进行基本的操作。

这些权限通常包括SELECT、INSERT、UPDATE 和DELETE等操作。

为了分配基本权限,我们可以使用以下的T-SQL语句:GRANT SELECT, INSERT, UPDATE, DELETE ON 表名TO 用户名这个语句将会授予用户对指定表的SELECT、INSERT、UPDATE和DELETE 权限。

如果需要将权限授予多个表,可以使用逗号分隔表名。

同样地,如果需要为多个用户授予相同的权限,可以使用逗号分隔用户名。

第三步:分配特定权限除了基本权限,我们还可以为用户分配一些特定的权限,以满足其具体的业务需求。

例如,我们可以为用户分配EXECUTE权限,使其能够调用存储过程;我们可以为用户分配VIEW DEFINITION权限,使其能够查看对象的定义;我们还可以为用户分配CREATE TABLE权限,使其能够创建新的表。

sqlserver2008r2 权限管理说明 -回复

sqlserver2008r2 权限管理说明 -回复

sqlserver2008r2 权限管理说明-回复SQL Server 2008 R2 权限管理说明SQL Server是一款功能强大的关系型数据库管理系统,提供了完善的权限管理机制,可以对数据库和对象进行细粒度的访问控制。

在SQL Server 2008 R2中,权限管理是非常重要的一环,它可以帮助数据库管理员(DBA)保护敏感数据,确保数据的安全性和完整性。

本文将详细介绍SQL Server 2008 R2的权限管理机制,包括登录、用户、角色和授权等内容。

1. 登录管理登录是SQL Server中的一个关键概念,它是用户访问数据库的凭证。

SQL Server 2008 R2支持Windows身份认证和SQL Server身份认证两种方式进行登录管理。

Windows身份认证使用操作系统的凭据进行认证,SQL Server身份认证则是通过用户名和密码进行认证。

登录的创建和授权都是由系统管理员(SA)或拥有相应管理权限的用户执行。

创建登录的语法如下:sqlCREATE LOGIN login_name WITH PASSWORD = 'password'授权登录的语法如下:sqlGRANT CONNECT SQL TO login_name2. 用户管理用户是指已经登录到系统中的安全标识,也是授权和分配权限的主体。

你可以为每个登录创建一个独立的用户,也可以为多个登录创建共享用户。

用户可以通过创建数据库用户来与数据库建立连接,执行特定的操作。

创建用户的语法如下:sqlCREATE USER user_name FOR LOGIN login_name授权用户的语法如下:sql3. 角色管理角色是一组用户的集合,可以将权限分配给角色而不是每个用户。

这样可以简化权限管理,并且在需要更改权限时,只需更改角色的权限而不用每个用户都进行更改。

SQL Server 2008 R2提供两种类型的角色:固定数据库角色和自定义数据库角色。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"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 [用户名]。

相关文档
最新文档