《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.8 创建SQL Server实例对象

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第1章,第1.9节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.8 创建SQL Server实例对象

大多数在SQL Server中的操作都需要连接到实例。

1.8.1 准备

打开PowerShell控制台、PowerShell ISE或者你喜欢的PowerShell编辑器。

你需要注意你的实例名是什么。如果你有一个默认实例,你可以使用机器名。如果你有一个命名实例,这个格式将会是<机器名><实例名>。

1.8.2 如何做…

如果你使用Windows验证连接到实例,使用你当前的Windows登录,按如下步骤操作。

1.导入SQLPS模块。

#import SQLPS module
Import-Module SQLPS –DisableNameChecking

2.将实例名保存到变量。

#create a variable for your instance name
$instanceName = "KERRIGAN"

3.如果你使用Windows验证,使用你登录的帐号登录到实例。

#create your server instance
$server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server
-ArgumentList $instanceName

如果你使用SQL验证连接,你需要知道用于验证的用户名和密码。在这里,你需要添加以下代码,设置连接为混合模式,并提示用户名和密码。

#set connection to mixed mode
$server.ConnectionContext.set_LoginSecure($false)
#set the login name
#of course we don't want to hardcode credentials here
#so we will prompt the user
#note password is passed as a SecureString type
$credentials = Get-Credential
#remove leading backslash in username
$login = $credentials.UserName -replace("\\", "")
$server.ConnectionContext.set_Login($login) 
$server.ConnectionContext.set_SecurePassword($credentials.Password)
#check connection string
$server.ConnectionContext.ConnectionString
Write-Verbose "Connected to $($server.Name)"
Write-Verbose "Logged in as $($server.ConnectionContext.TrueLogin)"

1.8.3 如何实现…

在你用程序访问和操作SQL Server之前,通常需要创建对象的参照。最基本的是服务器。

服务器实例使用Microsoft.SqlServer.Management.Smo.Server类型。默认情况下,到服务器的连接使用信任连接,意思是它使用你登录到服务器时所使用的Windows帐号。因此在参数列表中只需要实例名。

#create your server instance
$server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server-ArgumentList
$instanceName

而如果你需要使用SQL登录,你需要将SMO服务器类的ConnectionContext.LoginSecure属性设置为false。

#set connection to mixed mode
$server.ConnectionContext.set_LoginSecure($false)

你也需要明确设置用户名和密码。最好的方式是提示用户输入凭据。

#prompt
$credentials = Get-Credential

凭据窗口将捕获用户名和密码。如果没有使用域,Get-Credential返回带有前导反斜杠的用户名。在这里,我们想删除这个前导反斜杠。

#remove leading backslash in username
$login = $credentials.UserName -replace("\\","")

一旦获取到登录名,我们将它传给set_Login方法。密码已经是一个SecureString类型,也是set_SecurePassword要求的,因此我们乐意将它传给这个方法。

$server.ConnectionContext.set_Login($login)
$server.ConnectionContext.set_SecurePassword($credentials.Password)

你可能指定用户名,只提示输入密码,也可以这样:

$login="belle"
#prompt
$credentials = Get-Credential -Credential $login

在这个脚本中,你也注意到了,我们使用Write-Verbose替代Write-Host来显示结果。因为我们希望能控制输出而不用总是返回到我们的脚本,我们移除了所有的Write-Host命令。

默认情况下,脚本不会显示任何输出,也就是说,$VerbosePreference特殊变量设置为SilentlyContinue。如果你想在verbose模式运行脚本,你只需要将下面这行内容添加到你的脚本开头。

$VerbosePreference = "Continue"

当完成后,你只需要将该值修改为SilentlyContinue。

$VerbosePreference = "SilentlyContinue"

1.8.4 更多…

导入SMO程序集方法
使用SMO创建SQL Server实例方法

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
4天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
9 0
|
7天前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
19 0
|
7天前
|
SQL 数据处理 数据库
|
7天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
22 0
|
7天前
|
SQL 存储 监控
|
7天前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
|
7天前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
16 0
|
7天前
|
Java 开发者 前端开发
Struts 2:如何在大型项目中力挽狂澜,成就企业级应用开发的巅峰之作!
【8月更文挑战第31天】在本案例研究中,我们探讨了Struts 2框架在国际贸易管理系统(ITMS)中的应用,展示了其在大型项目中的优势与实践经验。Struts 2凭借其强大的表单处理、灵活的Action配置、拦截器机制及国际化支持,成为构建可扩展、高性能Web应用的理想选择。文章详细介绍了RESTful URL设计、Ajax集成、文件上传与下载等功能实现,并分享了性能优化、安全措施及遇到的问题与解决方案,为开发者提供了宝贵的参考。通过持续集成与新技术的应用,我们不断优化系统,提升开发效率与竞争力。
17 0
|
7天前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
24 0
|
7天前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
19 0
下一篇
DDNS