(4.19)SQL server 2008一些常见配置之一(基本配置,权限配置远程访问配置和内存配置。)
Posted gered
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(4.19)SQL server 2008一些常见配置之一(基本配置,权限配置远程访问配置和内存配置。)相关的知识,希望对你有一定的参考价值。
本系列转自一至4转自:甲子黎叔个人公众号,文章系列
SQL server 2008一些常见配置之一(基本配置)
SQL server服务器配置主要有:权限配置、远程访问配置(网络配置)、内存配置、接口配置、SSRS报表服务器配置等,今天一起学习最基本的配置:权限配置、远程访问配置和内存配置。
实操环境:
操作系统:windows2008
SQL server服务器:Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
一、权限配置
当涉及到多人使用同一个数据库的时候,为了更好的管理数据库,将人员分类并给分别分配不同账户显得特别必要。
(一)增加账户办法
1.新增用户
可以直接在【安全性-登录名】增加,也可以到具体数据库(即实例)下增加。
2.基本配置
3.服务器角色配置
4.数据库角色配置(用户映射)
5.登陆允许
6.查看建立账户的后台脚本
以查看到具体的执行脚本
USE [master]
GO
CREATE LOGIN [lidw3] WITH PASSWORD=N‘lidw3‘ MUST_CHANGE, DEFAULT_DATABASE=[SSMISDIYDB], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
EXEC master..sp_addsrvrolemember @loginame = N‘lidw3‘, @rolename = N‘sysadmin‘
GO
USE [SSMISDIYDB]
GO
CREATE USER [lidw3] FOR LOGIN [lidw3]
GO
USE [SSMISDIYDB2]
GO
CREATE USER [lidw3] FOR LOGIN [lidw3]
GO
(二)角色解释
SQL server角色管理是很大的一门学问,靠简单几句话无法完全解释清楚,下面对主要内容做一个提炼便于阅读。
服务器级别角色官方资料:
https://docs.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/server-level-roles?view=sql-server-2017
数据库级别角色官方资料:
https://docs.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-2017
先说查看步骤:
第一个办法:通过界面查看
第二个办法:通过脚本查看
需要查看具体角色所拥有的权限,可以使用sp_srvrolepermission系统存储过程来查看(如果输入参数将显示所有角色):
sp_srvrolepermission
sp_srvrolepermission ‘dbcreator‘
下面逐一对相关角色做个简单说明
1.固定服务器角色
服务器角色是指对整个SQL server服务器进行管理的角色,是覆盖在数据库(即实例)之上的权限。
(1)bulkadmin:允许大批量数据插入权限(可执行 BULK INSERT 语句),比如读取csv、txt中的数据。
(2)dbcreator:创建和修改数据库
(3)diskadmin:顾名思义,专门针对磁盘文件进行管理的权限
(4)processadmin:专门管理SQL Server进程的权限,包括可以KILL进程
(5)public:每个登录账户都默认拥有这个角色
(6)securityadmin:管理登录、建立和删除数据库、阅读审计权限
(7)serveradmin:对服务器进行设置的权限
(8)setupadmin:允许添加、删除链接服务器,也就是我们将要说到的外部接口配置
(9)sysadmin:最高权限,可执行SQL Server任何动作,包含了上述所有权限。如果是个人使用的话,就都选上吧,特别是这个角色。
2.固定数据库角色
数据库角色是指对特定数据库(即实例)进行管理的角色,如对数据库具有备份、增、删、改等权限。
(1)db_accessadmin:添加、删除用户、组的角色
(2)db_backoperator:备份数据库的角色
(3)db_datareader:读取数据库任何表的数据(也可以理解成只读权限)
(4)db_datawriter:可以对数据库表进行增、删、改数据的角色
(5)db_ddladmin:可以执行任何DDL语句的角色
(6)db_denydatareader:禁止读取任何表数据(但可以通过执行存储过程查来读取)
(7)db_denydatawriter:禁止修改任何表数据(但可以通过执行存储过程查来修改)
(8)db_owner:最高权限,数据库拥有者,可执行任何操作(类似服务器角色sysadmin)
(9)db_securityadmin:允许更改数据库的权限和角色
(10)public:每个数据库用户都拥有public角色(类似服务器角色public)
3.用户自定义角色
不能定义服务器角色,只能定义具体的数据库角色。
(三)特殊说明
1.sa登录是系统超级管理员,永远是拥有服务器最高角色syadmin,并且不能从该角色中被删除。
2.每个登陆数据库用户都拥有服务器角色public、数据库角色public,属于默认权限,并且不能从该角色中被删除。
3.可以使用如下系统存储过程对用户或角色进行配置(非界面化操作)
sp_addapprole
sp_addrole
sp_addrolemember
sp_approlepassword
sp_changeobjectowner
sp_dropapprole
sp_droprole
sp_droprolemember
sp_dropuser
sp_grantdbaccess
二、远程访问配置(网络配置)
下面介绍如何通过其他电脑访问该SQL server服务器的方法(即多人同时使用同一台SQL server服务器)。
(一)设置登陆模式
服务器->右键->属性
“服务器验证方式”下选择“SQL Server和Windows身份验证模式”
“连接”勾选“允许远程连接此服务器”
确定->退出。
(二)针对具体用户进行登陆授权
“状态”选择“连接到数据库”为“授予”,“登录”为“启用”
确定->退出。
(三)开启TCP/IP协议
Microsoft SQL Server 2008->配置工具->SQL Server 配置管理器
SQL Server网络配置->MSSQLSERVER 的协议->(右侧)TCP/IP->启用
其中,MSSQLSERVER为要远程访问的数据库(即实例)。
双击(或属性),进行端口设置,默认为1433
重启SQL server服务,使之生效。
(四)防火墙设置:如果服务器有防火墙的话,请将SQLServr.exe添加到允许列外的列表中。允许SQL Server 的 1433 TCP端口和1434 UDP端口对外连接。
(以下为windows2008防火墙设置办法)
找到SQL server可执行文件:sqlservr.exe
例如:
C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBinnsqlservr.exe
注:上述可执行文件路径可能会根据 SQL Server 2008 的安装位置而不同。
最后点【添加】。
(五)检验
1.检查网络:使用另外一台电脑通过tcping工具(带端口的ping工具,非win系统自带,请到百度搜索并下载)检查服务器端口是否打开,比如服务器IP为192.168.1.100 则在dos窗口执行:
tcping 192.168.1.100 1433
输出结果
2.确保网络通畅后,尝试连接数据库,服务器名称输入对端服务器IP(或名称,必须可通过DNS解析为具体IP),身份验证选择:SQL server身份验证。
3.登陆成功提示。
三、内存配置
SQL server 2008在日常使用中,经常莫名其妙内存被用光,导致系统特别卡顿。
(一)解决这个问题具体请参详技术大神博客。
1.SQL SERVER排查CPU占用高的情况
https://www.cnblogs.com/lyhabc/archive/2013/06/12/3133273.html
2.SQL Server 2008 R2占用内存越来越大两种解决方法
https://blog.csdn.net/enweitech/article/details/49814133
3.临时解决办法(重启服务)
net stop sqlserveragent
net stop mssqlserver
net start mssqlserver
net start sqlserveragent
(二)内存配置办法
建议预留一定的系统内存空间用于其他程序,这样就不至于被SQL server吃完所有内存。
(三)查看办法
在【活动和监控器】中对服务器的内存进行监控和占用大资源SQL进行查看。
以上是关于(4.19)SQL server 2008一些常见配置之一(基本配置,权限配置远程访问配置和内存配置。)的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 索引最佳实践(SQL Server 2008)[关闭]
SQL Server 2008 到 SQL Server Compact Edition?