带有SQL Server的数据库管理
#初学者 #sql #database #sqlserver

背部和修复副本

面对任何不便(磁盘读取故障,服务器硬件问题,对系统的不需要访问),备份是一种保护机制,因为在服务器的最后稳定情况下可能有必要恢复数据。

备份类型

完全支持

使一切都背负。存储所有BD对象:表,过程,功能,视图...
它还创建了交易注册表的副本,以便BD可以恢复。
要进行完整的备份,您需要执行命令:

BACKUP DATABASE DBDemoATC
To DISK='f:\PowerSQL\DBDemoATC.BAK'
WITH FORMAT,
MEDIANAME = 'Native_SQLServerBackup',
NAME = 'Full-SQLShackDemoATC backup';

在几个文件中进行备份:

BACKUP DATABASE SQLShackDemoATC TO
DISK = 'f:\PowerSQL\SQLShackDemoATC_1.BAK’,
DISK = 'f:\PowerSQL\SQLShackDemoATC_2.BAK’,
DISK = 'f:\PowerSQL\SQLShackDemoATC_3.BAK’,
DISK = 'f:\PowerSQL\SQLShackDemoATC_4.BAK'
WITH INIT, NAME = 'FULL SQLShackDemoATC backup’, STATS 5

差异支持

仅差分支持副本,只有从上次完整备份副本中进行的更改,因为不复制所有文件,它通常比其执行更多。


差分备份节省了存储空间和时间来制作备份,随着数据的变化,差异备份的大小也会增加。


要执行差异支持,它将执行:

BACKUP DATABASE DBDemoATC
To DISK='f:\PowerSQL\DBDemoATC.BAK'
WITH DIFFERENTIAL,
MEDIANAME = 'Native_SQLServerBackup',
NAME = 'Full-SQLShackDemoATC backup';

交易注册支持

顾名思义,备份交易记录的备份副本,只有完整或大量的记录恢复模型才有可能。
该副本包含所有交易记录,这些记录未包含在交易注册表的最后备份副本中。
要创建这样的备份,它将执行:

BACKUP LOG SQLShackDemoATC
To DISK='f:\PowerSQL\SQLShackDemoATC_Log.trn'
WITH
MEDIANAME = 'Native_SQLServerLogBackup',
NAME = 'Log-SQLShackDemoATC backup';

文件备份副本

要创建文件备份,它将执行:

CREATE DATABASE SQLShackFileBackup ON PRIMARY
( NAME = N'SQLShackFileBackup_1',
FILENAME = N'f:\PowerSQL\SQLShackFileBackup_1.mdf' ,
SIZE = 5000KB , FILEGROWTH = 1024KB ),
FILEGROUP [Secondary]
( NAME = N'SQLShackFileBackup_2',
FILENAME = N'f:\PowerSQL\SQLShackFileBackup_2.ndf' ,
SIZE = 5000KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'SQLShackFileBackup_Log',
FILENAME = N'f:\PowerSQL\SQLShackFileBackup_Log.ldf' ,
SIZE = 1024KB , FILEGROWTH = 10%)

要在文件的文件级别执行备份,它将执行:

BACKUP DATABASE SQLShackFileBackup
FILE = 'SQLShackFileBackup_1',
FILE = 'SQLShackFileBackup_2'
TO DISK = 'f:\PowerSQL\SQLShackGroupfiles.bak';
GO

镜像副本

这些是同一备份中相同的副本,它们通常存储在不同的备份设备中,提高可靠性并降低数据的概率。 作为缺点,您每个备份都需要其他磁盘空间。
要创建此类型的BD备份,使用该命令:

BACKUP DATABASE AdventureWorks2014
TO DISK = 'C:\Mirror_01\AdventureWorks2014_Mirror_01.bak'
MIRROR TO DISK = 'D:\Mirror_02\AdventureWorks2014_Mirror_02.bak'
MIRROR TO DISK = 'E:\Mirror_03\AdventureWorks2014_Mirror_03.bak'
WITH FORMAT

进行日志备份:

BACKUP LOG AdventureWorks2014
TO DISK = 'C:\Mirror_01\AdventureWorks2014_Mirror_01.bak'
MIRROR TO DISK = 'D:\Mirror_02\AdventureWorks2014_Mirror_02.bak'
MIRROR TO DISK = 'E:\Mirror_03\AdventureWorks2014_Mirror_03.bak

任务的自动化

数据库管理员(DBA)必须学会自动化重复任务,以使这些任务始终执行。
自动化的优点是:

  • 减少工作量
  • 减少忘记任务的风险
  • 减少人类错误
  • 行政中的主动管理

可用于执行SQL Server任务自动化的本机工具是维护计划的助手和设计以及代理服务以创建对象(作业,警报,通知和操作员)。

必须在BD服务器上执行的常规维护操作是:

  • 确保BD与DBCC CHECKDB命令的完整性
  • 对象,表和我们的统计数据更新
  • 减少BD的大小
  • BD备份
  • 数据清洁任务

安全管理

基本安全概念:

  • 登录SQL Server
  • BD用户
  • Rol de la bd
  • 应用程序的角色

会话的开始(登录)

是使用SQL Server实例的能力,您与Windows或SQL用户关联。它们已通过SQL Server进行身份验证,因此它们可以访问服务器,但是他们无法访问BD或其他对象(为您需要用户)。
会话开始(或身份),也是用户可以使用的帐户访问SQL Server。会话的开始是通过安全标识符(SID)附加到用户的。
要创建登录名,它将执行:kude9
如果我们要创建一个会话以应更改的密码开始,则执行:

CREATE LOGIN <loginname> WITH PASSWORD = '<Password>'
MUST_CHANGE, CHECK_EXPIRATION = ON;

消除用于连接到SQL Server实例的会话启动
DROP LOGIN login_name;
要修改会话启动,可以使用替代登录名来更改密码,禁用/启用/块/重命名会话,等等。它的语法是:

ALTER LOGIN login_name
{ ENABLE | DISABLE
| WITH PASSWORD = 'password' | hashed_password HASHED
[ OLD_PASSWORD = 'old_password' ]
| MUST_CHANGE
| UNLOCK
| DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name
| NAME = new_login_name
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
| CREDENTIAL = credential_name
| NO CREDENTIAL
| ADD CREDENTIAL new_credential_name
| DROP CREDENTIAL credential_name };

您的参数是:
login_name:会话开始时分配的会话的起始名称。

  • 启用:启用会话开始。
  • 禁用:禁用sesión的开始。
  • 密码:分配给SQL Server Authentication真实的会话开始的新密码
  • hashed_pa​​ssword:SQL Server Authentication在会话开始时将分配的密码的哈希值。
  • old_password:使用SQL Server的身份验证的先前密码。
  • MUST_CHANGE:当您想在使用交替指令之后的会话开始时要强制密码更改时使用。
  • 解锁:它将解锁已阻止的会话开始。
  • database_name:分配给会话开头的默认数据库
  • language_name:在开头分配的默认语言 会话。
  • new_login_name:如果您使用替代仪器来更改会话的名称开始。
  • ,会话开始的新名称。
  • check_expiration:确定密码到期策略是否。您必须指定check_expiration = on MUST_CHANGE选项。
  • recredential_name:分配给会话开始的凭据的名称。
  • non -Credential:消除会话开始的分配凭据。
  • 添加凭据:在sesión的开头添加凭据。
  • 凭据下降:消除会话开始的证书

示例:
更改密码:kude13
更改密码和强制更改:`kouude14
禁用会话的开始:ALTER LOGIN techonthenet DISABLE;
要启用会话开始:koud16

BD用户(用户)

用户是指用于访问BD的BD帐户。
它是连接到BD时会话开始的身份。您可以使用与会话开头相同的名称,但不是必需的。
除了自己的方案(schemas)外,还将登录和赠款分配给用户。
BD中的默认用户:

  • bod:所有者(无法从BD删除)
  • 来宾:允许在没有帐户的用户 BD,与她联系,但您必须允许 示例。
  • 信息_schema:允许您查看 SQL Server。
  • sys:允许您咨询系统的表格和视图, 扩展过程和其他对象 系统cathelogue。

要查看BD的现有用户,我们可以执行:
`USE master
GO
SELECT * FROM sys.database_principals`

相信使用用户:Create user <username> for login <loginname>
要删除用户执行:DROP USER user_name;仅在用户在BD中没有对象的情况下执行此仪器。

`Use <database name>
Grant <permission name> on <object name> to <username\principle>`
例如:
`USE TestDB
GO
Grant select on TestTable to TestUser`

角色

角色可以在实例级别或BD。
在实例级别,可以授予登录角色,称为“服务器角色”,无法创建新角色。
在BD级别,可以授予BD用户的角色,并可以创建新的角色。
应用程序的角色用于将许可分配给应用程序,它具有密码并且不包含用户。
角色有助于安全模型的配置和维护,它是一组相关的特权,可以授予用户创建角色,并执行:kude22

授予系统角色的一些特权是:

  • 连接:创建表,视图,症状,序列,会话等。
  • 资源:创建过程,序列,表,触发器等。该角色的主要用途是限制对BD的对象的访问。
  • DBA:它具有系统的所有特权。

要授予特权扮演角色,已执行:kouude23
给用户一个角色:kouude24
消除角色的特权:kouude25
消除角色:kouude26