Quantcast
Channel: 64 Blog
Viewing all articles
Browse latest Browse all 45

PowerShell で SQL Server 2012 をなんやかんや.1

$
0
0

どうやら以前に下記の様なポストをしていて、PowerShell から SQL Server 2008 に対していろいろやっていたみたいな痕跡が残っていました。
PowerShell から SQLServer に データベースやテーブルを作成
PowerShell から SQLServer の データベースやテーブルの定義を変更
PowerShell から SQLServer のデータベースやテーブルを削除

 

今回は SQL Server 2012 で、ユーザーの追加や認証モードの変更などを作業した際のメモを、ブログにもなんとなく残しておこうと思います。

 

■ 前提
なにはともあれ、まずは sqlps モジュールを読み込んでおく必要がありますね。

Import-Module "sqlps" -DisableNameChecking

 

■ 認証の変更
認証モードを変更する場合。

混合認証モード

$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName"
$sql.Settings.LoginMode = [Microsoft.SqlServer.Management.SMO.ServerLoginMode]::Mixed
$sql.Alter()

Windows 認証モード

$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName"
$sql.Settings.LoginMode = [Microsoft.SqlServer.Management.SMO.ServerLoginMode]::Integrated
$sql.Alter()

 

■ ユーザー
追加
パスワードの有効期限なし の SQL 認証のユーザーを追加

$SQL_LOGINNAME = "test-user"
$SQL_LOGINPSWD = "password"
$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName"
$login = New-Object Microsoft.SqlServer.Management.Smo.Login $sql, $SQL_LOGINNAME
$login.LoginType = [Microsoft.SqlServer.Management.Smo.LoginType]::SqlLogin
$login.PasswordExpirationEnabled = $false
$login.Create($SQL_LOGINPSWD)

変更
上で追加したユーザーを sysadmin ロールに追加して、パスワードの有効期限あり に変更

$SQL_LOGINNAME = "test-user"
$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName"
$login = New-Object Microsoft.SqlServer.Management.Smo.Login $sql, $SQL_LOGINNAME
$login.AddToRole('sysadmin')
$sql.Logins[$SQL_LOGINNAME].PasswordExpirationEnabled = $true
$sql.Logins[$SQL_LOGINNAME].Alter()

削除
上で追加したユーザーを削除

$SQL_LOGINNAME = "test-user"
$sql = new-object Microsoft.SqlServer.Management.Smo.Server "InstanceName"
$sql.Logins[$SQL_LOGINNAME].Drop()

 

今回はココまでにしておきます。次回も なんやかんや です。

 

[参考]
Microsoft.SqlServer.Management.Smo 名前空間
http://technet.microsoft.com/ja-jp/library/Microsoft.SqlServer.Management.Smo.aspx

ServerLoginMode 列挙体
http://technet.microsoft.com/ja-jp/library/microsoft.sqlserver.management.smo.serverloginmode.aspx

Login クラス
http://technet.microsoft.com/ja-jp/library/Microsoft.SqlServer.Management.Smo.Login.aspx


Viewing all articles
Browse latest Browse all 45

Trending Articles