在SQL sever2000中 怎样设置服务器角色

在SQL sever2000中 怎样设置服务器角色,第1张

sql server2005安全管理之用户、角色、架构 与 权限

2008-12-04 16:47

--打开数据库

Use databaseName

--创建角色

create role ProgramerRole

--用于创建表 存储过程 视图

grant create table,create procedure,create view to ProgramerRole

--execute用以执行存储过程,alter用以创建、修改存储过程和视图,

--并可以新建立表,但不能修改表,但也可以删除表和对表改名了

grant select,insert,execute,alter on schema::dbo to ProgramerRole

--用于允许用户查看 显示估计的执行计划(081205)

grant showplan to ProgramerRole

--创建登录账号

--create login username with password='password'

--创建数据库用户

create user username for login username

--将用户TestUser添加到TestRole角色中

exec sp_addrolemember 'ProgramerRole','username '

--执行Sql Server Profiler是服务器级权限,所以在master库中授权

USE master;grant alter trace to auto;

注:据库引擎优化顾问必须由具有系统管理员权限的用户进行初始化。在具有系统管理员权限的用户对数据库引擎优化顾问进行初始化之后,任何是 db_owner 固定数据库角色成员的用户,都可以使用数据库引擎优化顾问来优化他们拥有的数据库上的表。

详优化物理数据库设计http://msdnmicrosoftcom/zh-cn/library/ms191531(SQL90)aspx

参考资料:

用户架构分离:http://msdnmicrosoftcom/zh-cn/library/ms190387(SQL90)aspx

数据库架构是一个独立于数据库用户的非重复命名空间。您可以将架构视为对象的容器

主体:http://msdnmicrosoftcom/zh-cn/library/ms181127(SQL90)aspx

是可以请求 SQL Server 资源的实体

Windows 级别的主体

Windows 域登录名

Windows 本地登录名

SQL Server 级的主体

SQL Server 登录名

数据库级的主体

数据库用户

数据库角色

应用程序角色

安全对象:http://msdnmicrosoftcom/zh-cn/library/ms190401(SQL90)aspx

安全对象是 SQL Server 数据库引擎 授权系统控制对其进行访问的资源

安全对象范围有服务器、数据库和架构

安全对象范围:服务器包含以下安全对象:

端点

登录帐户

数据库

安全对象范围:数据库包含以下安全对象:

用户

角色

应用程序角色

程序集

消息类型

路由

服务

远程服务绑定

全文目录

证书

非对称密钥

对称密钥

约定

架构

安全对象范围:架构包含以下安全对象:

类型

XML 架构集合

对象

对象 下面是对象类的成员:

聚合

约束

函数

过程

队列

统计信息

同义词

视图

架构:http://msdnmicrosoftcom/zh-cn/library/ms365789(SQL90)aspx

架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部

特定架构中的每个安全对象都必须有唯一的名称。架构中安全对象的完全指定名称包括此安全对象所在的架构的名称。因此,架构也是命名空间

权限:http://msdnmicrosoftcom/zh-cn/library/ms190387(SQL90)aspx

每个 SQL Server 2005 安全对象都有可以授予主体的关联权限

数据库级别的角色:http://msdnmicrosoftcom/zh-cn/library/ms189121(SQL90)aspx

固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份;但是,只有 db_owner 数据库的成员可以向 db_owner 固定数据库角色中添加成员。

每个数据库用户都属于 public 数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限

服务器级别角色:http://msdnmicrosoftcom/zh-cn/library/ms188659(SQL90)aspx

固定服务器角色在其作用域内属于服务器范围。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。

GRANT 架构权限:http://msdnmicrosoftcom/zh-cn/library/ms187940(SQL90)aspx

如何配置用户以创建和管理 SQL Server 代理作业 http://msdnmicrosoftcom/zh-cn/library/ms187901aspx

若要配置用户以创建或执行 Microsoft SQL Server 代理作业,必须先将某个现有 SQL Server 登录名或 msdb 角色添加到 msdb 数据库中的下列 SQL Server 代理固定数据库角色之一:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。

默认情况下,这些数据库角色的成员可以创建各自的作业步骤,这些作业步骤不执行其他作业步骤。如果这些非管理用户要运行那些执行其他作业步骤类型(例如,SSIS 包)的作业,它们需要对代理帐户具有访问权限。sysadmin 固定服务器角色的所有成员都有创建、修改和删除代理帐户的权限

为具体的用户设置具体的访问权限 收藏

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 [用户名]

  首选需要正确开启windows2008系统的远程桌面功能

  1正常的开启操作:

在桌面上右点"计算机"->"属性"->在打开的"系统"窗口里点击"远程设置",再切换到"远程"选项板中,将"远程协助"打上对钩,再将"远程桌面"里根据你的需要选择一项目,比方我选择的是"允许运行任意版本远程桌面的计算机连接"。确定就行了。

  2特殊的情况:有的网友会发现在给"远程协助"打钩时,是灰色的没法钩上,也就没办法开启。这是因为windows2008的安全性已经被微软设计的很高,默认刚安装上2008系统时并没有安装上这项服务,需要你用执行相应的安装操作。具体如下:打开"服务器管理器"右击"功能"选择"添加功能",将右边窗口中"远程服务器管理工具"下边的"远程协助"打上对钩"再点击"下一步"再点击"安装"需要等待几分钟安装完后再去执行上边第1步操作就成功开启了远程桌面功能。

  但现在我们遇到了一个问题,就是Windows server

2008系统默认只支持一个administrator用户登陆,一个登录后另一个就被踢掉了,有没有办法像Windows Server

2003那样允许多用户用同时同一个用户名登录

  解决方法: 打开控制面板-管理工具,终端服务-终端服务配置

1、连接:RDP-tcp

点右键,属性。网络适配器-最大连接数2。默认情况下如果你不添加终端服务功能,最大只能调整为同时2个连接。

2、终端服务器授权模式:点右键,属性。常规,限制每个用户只能使用一个会话,去掉勾,确定。到这里就可以多登录了。如果没有设置生效,重启一下。

  3、为了防止恶搞,阻止远程用户终止控制台管理员。我们可以运行gpeditmsc,打开组策略

,计算机配置-管理模板-Windows组件-终端服务-终端服务器-连接。

配置:拒绝将已经登录到控制台会话的管理员注销,设置启用,重启系统或是刷新组策略后即可生效。

  英文版操作系统对应的操作流程是:

  在使用Windows 2008远程登录功能时,如果需要进行多用户登录,可以采用以下配置方法:

  首先要启用远程桌面这一功能:右击“我的电脑”→ 属性 → 远程配置 → 远程桌面,就可以配置相应的远程桌面功能了。下面是配置多用户登陆的方法:

  打开 控制面板 → 管理工具 → 终端服务(Terminal Services) → 终端服务配置(Terminal Services

Configuration)

  1、(修改可以同时登陆的人数,包括自己,默认为2个,如果只需要另外一个人远程登陆你的电脑的话,比如mm或gg,那么这一步就不用做了,直接跳到第二步)连接(Connections):RDP-tcp

点右键 → 属性 → 网络适配器(Network Adapter) → 最大连接数 → 自己修改数目。

  2、配置(Edit settings):终端服务器授权模式(Terminal Services licensing mode) → 点右键 → 属性 →

常规 → 限制每个用户只能使用一个会话(Restrict each user to a single session),去掉前面的勾 →

确定。到这里就可以多用户登录了。如果设置没有生效,重启一下(试过了,生效d)。

  3、为防止恶搞,阻止远程用户终止控制台管理员。开始 → 运行 → gpeditmsc → 计算机配置 → 管理模板 →

Windows组件(Windows Components) → 终端服务(Terminal Services) → 终端服务器(Terminal Server)

→ 连接(Connections) → 拒绝将已经登录到控制台会话的管理员注销(Deny logoff of an administrator logged

in to the console session),右击 → 属性 → 启用。(重启生效)

  windows 2008 r2

rds设置

远程桌面服务或说RDS是一项由来已久的Windows终端服务,只不过它经历了许多更新和发展。那些曾将终端服务当作Citrix基础的企业,现在大都不再需要Citrix了,因为以前主要来自Citrix插件的功能已经被Windows

2008 R2

RDS替代。微软已经对其功能和兼容性进行升级,以前需要Citrix进行补充的功能已经包含在其中。通过x64位主服务器,我们可以将32Gb或64Gb以及8核或16核放入单一系统中,让150-250名用户同时处在同一个RDS服务器上。

  RDS的主要特性:

  1可以同时让多个用户处于同一RDS主服务器,从而使大量RDS服务器都处于加载平衡状态。

  2用RDS Session Broker服务器平衡RDS服务器的加载,并且当用户断开链接时将其重新连接到服务器上。

  3将RDS网关服务器接入网络,以便远程用户通过标准SSL 443端口访问RDS主机(而不是通过经常被防火墙拦截的3389端口)。

  4将RDS Web Access服务器接入网络,因此远程用户只能连接一个网页并通过一个页面来访问其RDS应用,而不需要获取全部桌面会话。

  5将RDS

RemoteApp服务器接入网络,这样用户桌面会产生一个相应图标,双击该图标就可打开一个应用,而不需要了解该应用是否以RDS托管应用的方式运行。

  我们还可以将这些服务器角色结合起来尽可能减少所需的系统数量,或者我们也可以对该环境进行扩展,大大增加其资源量和用户量。

  至于RDS的基本安装,笔者有以下经验与大家分享。部署RD Session Host 角色服务时,要在RD Session

Host服务器可用来托管应用前,按先后顺序完成以下三件事情:

  1必须安装RD Session Host角色服务(这是基本的终端服务器系统任务。)

  2要通过RD Session Host服务器托管的应用必须安装到RD Session Host系统上。

  3必须授予用户所需的特权,使其能连接RD Session Host服务器以及配置RD许可证。

  安装RD Session Host角色服务

  欲安装RD Session Host角色服务,可按如下步骤进行:

  1通过本地管理员享有的特权登录所需服务器。

  2点击“开始”菜单,然后点“运行”。

  3在运行对话框中输入ServerManagermsc,然后确认。

  4在Roles Summary部分,点击添加Roles任务。

  5添加Roles向导加载之后,选下一步。在选择服务器角色页面上,选择“远程桌面服务”角色,然后点下一步。

  6在远程桌面服务页面,选下一步。

  7在选择角色服务页面,仅选择“远程桌面会话主机”角色服务。这是此时唯一安装的角色服务。点击下一步。

  8在Uninstall and Reinstall Applications for Compatibility page,选择下一步到Specify

Authentication Method for Remote Desktop Session

Host页面,为RD会话主机服务器选择一种验证方式,然后点下一步。

  9在Specify Licensing Mode页面,选择Configure Later licensing,然后点下一步。

  10在Select User Groups Allowed Access to This RD Session Host Server

页面,保留默认管理组,点下一步。

  11在Configure Client Experience

页面,选择所需的客户经验级别,当远程客户连接到RD会话主机服务器时会使用到这一项,点下一步。

  12在Confirm Installation Selections 页面,检查所有选定的选项,然后点“安装”。

  13当系统提示重启服务器,点确认。服务器重启后,重新以管理员身份登录服务器,登录后,系统会显示安装完成页面。检查该页面的所有内容,确定终端服务器安装成功。

  安装应用

  应该在RD会话主机角色服务安装完成后,才将应用程序安装到RD会话主机服务器上。反之,所安装的应用可能会无法被所有用户正常使用。此外,如果是以特殊安装模式进行安装,那么应用只能安装到RD会话主机服务器上。可以用以下任意一种方法将RD会话主机服务器以这种安装模式安装。

  1打开控制面板,在下属程序中找到远程桌面会话主机,使用该主机选项上的“安装应用”。

  2在安装应用前,使用此命令:change user /Install 。

  如果选择第二种方法,那么需要用change user

/Execute命令,将该服务器改回Execute模式。用户访问新安装的应用前,服务器应处于Execute模式。可用change user

/Query命令查看当前模式。

  注意,当安装那些使用微软msi数据包的应用时,RD会话主机服务器通常不需要转换到Install模式。只要安装使用msi数据包或相关可执行安装文件即可。

  授权用户进行访问

  按以下步骤操作,可授权用户访问RD会话主机服务器:

  1以本地管理员身份登录所需服务器。

  2点击“开始”菜单,然后点“运行”。

  3在运行对话框中输入ServerManagermsc,然后确认。

  4在弹出的Server Manager 控制台选择Configure Remote Desktop任务。

  5在系统属性对话框中的远程选项卡,远程桌面部分,点Select Users按钮。下一步,选择“添加”,在Select Users or

Groups对话框中,选择你允许的用户进行授权,然后确认结束。

  6确认结束后,在系统属性对话框中,再次确认结束。

  注意,上述步骤完成后,本地远程桌面用户组会被修改。在Farm中管理大量RD会话主机服务器时,推荐大家用组策略对象中的有限组策略有节制地访问这些服务器。

数据库角色的成员可以分为如下几类:

Windows用户组或用户账户

SQL Server登录

其他角色

SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:

固定服务器

固定数据库

用户自定义

固定服务器

由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。

固定服务器角色

说 明

sysadmin

执行SQL Server中的任何动作

serveradmin

配置服务器设置

setupadmin

安装复制和管理扩展过程

securityadmin

管理登录和CREATE DATABASE的权限以及阅读审计

processadmin

管理SQL Server进程

dbcreator

创建和修改数据库

diskadmin

管理磁盘文件

下面两个系统过程用来添加或删除固定服务器角色成员:

sp_addsrvrolemember

sp_dropsrvrolemember

注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。

sa登录

sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。

注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。

固定服务器角色及其权限

在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:

sp_srvrolepermission[[@srvrolename =] 'role']

如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。

1 sysadmin

固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。

固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。

2 serveradmin

固定服务器角色serveradmin的成员可以执行如下的动作:

向该服务器角色中添加其他登录

运行dbcc pintable命令(从而使表常驻于主内存中)

运行系统过程sp_configure(以显示或更改系统选项)

运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)

使用shutdown命令关掉数据库服务器

运行系统过程sp_tableoption为用户自定义表设置选项的值

3 setupadmin

固定服务器角色setupadmin中的成员可以执行如下的动作:

向该服务器角色中添加其他登录

添加、删除或配置链接的服务器

执行一些系统过程,如sp_serveroption

4 securityadmin

固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:

向该服务器角色中添加其他登录

读取SQL Server的错误日志

运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)

5 processadmin

固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

执行KILL命令(以取消用户进程)

6 dbcreator

固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

运行CREATE DATABASE和ALTER DATABASE语句

使用系统过程sp_renamedb来修改数据库的名称

7 diskadmin

固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:

向该服务器角色中添加其他登录

运行如下系统过程:sp_ddumpdevice和sp_dropdevice。

运行DISK INIT语句

固定数据库角色

固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。下表列出了所有的固定数据库角色。

固定数据库角色

说 明

db_owner

可以执行数据库中技术所有动作的用户

db_accessadmin

可以添加、删除用户的用户

db_datareader

可以查看所有数据库中用户表内数据的用户

db_datawriter

可以添加、修改或删除所有数据库中用户表内数据的用户

db_ddladmin

可以在数据库中执行所有DDL操作的用户

db_securityadmin

可以管理数据库中与安全权限有关所有动作的用户

db_backoperator

可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)

db_denydatareader

不能看到数据库中任何数据的用户

db_denydatawriter

不能改变数据库中任何数据的用户

除了上表中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public,这里将首先介绍这一角色。

public角色

public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保留了默认的权限,因此是不能被删除的。

一般情况下,public角色允许用户进行如下的操作:

使用某些系统过程查看并显示master数据库中的信息

执行一些不需要一些权限的语句(例如PRINT)

固定数据库角色及其权限

在数据库中,每个固定数据库角色都有其特定的权限。这就意味着对于某个数据库来说,固定数据库角色的成员的权限是有限的。使用系统过程sp_dbfixedrolepermission就可以查看每个固定数据库角色的权限。该系统过程的语法为:

sp_dbxedrolepermission [[@rolename =] 'role']

如果没有指定role的值,那么所有固定数据库角色的权限都可以显示出来。下面的几节将讨论每个固定数据库角色的权限。

1 db_owner

固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作:

向其他固定数据库角色中添加成员,或从其中删除成员

运行所有的DDL语句

运行BACKUP DATABASE和BACKUP LOG语句

使用CHECKPOINT语句显式地启动检查点进程

运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES

使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess

使用系统过程sp_rename为任何数据库对象重新命名

2 db_accessadmin

固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列操作:

运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess

为Windows用户账户、Windows组和SQL Server登录添加或删除访问

3 dbdatareader

固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)

4 dbdatawriter

固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)

5 db_ddladmin

固定数据库角色db_ddladmin的成员可以进行如下的动作:

运行所有DDL语句

对任何表上授予REFERENCESE权限

使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构

使用系统过程sp_rename为任何数据库对象重命名

使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者

6 db_securityadmin

固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:

运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE)

运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember

7 db_backupoperator

固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:

运行BACKUP DATABASE和BACKUP LOG语句

用CHECKPOINT语句显式地启动检查点进程

运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

8 db_denydatareader和db_denydatawriter

顾名思义,固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。

固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 在SQL sever2000中 怎样设置服务器角色

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情