問題タブ [sqlps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - Powershell Invoke-SQLCmd と SQLPS
Windows 7 ワークステーション POSH 3.0 SS 2012 SP1
概要:
開発者 1 は Invoke-SQLCmd を実行できません
開発者 2 は同様の SS クライアント ツールをインストールしても Invoke-SQLCmd を実行できます
開発者 1 は Import-Module SQLPS を実行できません
次のようなラップトップからクエリを実行しようとすると:
次のエラーが表示されます。
さらに別の開発者がコマンドを正常に実行でき、両方ともローカル
明らかな理由で、自分のマシンで Import-Module sqlps を実行できません。ExecutionPolicy が制限されています。
他の開発者のマシンではクエリが許可されているのに、私のマシンでは許可されていない理由がわかりません。これは SQL クライアントのインストールの問題ですか?
powershell - PowerShell 4 - Import-Module : どのモジュール ディレクトリにも有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'SQLPS' は読み込まれませんでした
以前は PowerShell 3 を使用していました。PowerShell 4 にアップグレードし、直面しているエラーとしてアンインストールしました。
Import-Module : The specified module 'SQLPS' was not loaded because no valid module file was found in any module directory.
しかし、すべての SQL 関連のものはエラーなしで正常に動作しています。PowerShell コンソールでのこのエラーの根本的な原因は何ですか?
sql-server-2008 - #sqlps - サーバーに接続してクエリを実行する際の問題
リモートでホストされているサーバー\インスタンスに接続しようとしています。サーバーは、私が接続しているドメインにもあります(SSMSから提供された資格情報を使用してSQL Server認証を使用してローカルにログインできます)
期待される出力は
しかし、私が得るのは
PS SQLSERVER:> Import-Module SQLPS
$query = 'select GETDATE() as date'
$op = invoke-Sqlcmd -HostName 'servername' -Database 'DBName' -Username 'UN' -Password 'Pwd' -Query "$query " #-IgnoreProviderContext
$op | Format-Table
警告: モジュール 'SQLPS' からインポートされた一部のコマンドの名前には、承認されていない動詞が含まれているため、検出されにくくなる可能性があります。承認されていない動詞を含むコマンドを見つけるには、Verbose パラメーターを指定して Import-Module コマンドを再度実行します。承認された動詞の一覧を表示するには、Get-Verb と入力します。
invoke-Sqlcmd : ユーザー 'UN' のログインに失敗しました。
行:3 文字:7
+ $op = invoke-Sqlcmd -HostName 'servername' -Dat ...
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd]、SqlException
+ FullyQualifiedErrorId : SqlExectionError、Microsoft.SqlServer.Management.PowerShell.GetScriptCommandinvoke-Sqlcmd :
行:3 文字:7
+ $op = invoke-Sqlcmd -HostName 'servername' -Dat ...
+ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd]、ParserException
+ FullyQualifiedErrorId : ExecutionFailureException、Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
これが何に起因するのかを見つけるのを手伝ってもらえますか?
これが SQL Server auth であることをどこかに示す必要がありますか?
sql-server - 変数 SQL インスタンス名を Invoke-SQLcmd に渡すときにエラーが発生しました
サーバーからSQLインスタンスのリストを取得し、返されたリストをループしてクエリを実行するプロジェクトに取り組んでいA
ます(最終的にはユーザーを監査し、結果をテーブルに挿入します)が、エラーが発生しますinstance not found
。インスタンス名をハードコーディングすると機能するため、ループ内で変数を正しく定義していないようです。
これを修正する方法についてのご意見をお待ちしております。
Invoke-Sqlcmd : SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした) 行:12 文字:1 + Invoke-Sqlcmd -ServerInstance ${$SQLInst} -Database Master -Query "select @@serv .. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException + FullyQualifiedErrorId : SqlExectionError、Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
sql-server - t-sqlコードからxp_cmdshell呼び出しを削除するのに最適なものは何ですか?
大規模な t-sql ベースのアプリケーションを維持しています。xp_cmdshell を介して呼び出される bcp の多くの使用法があります。
xp_cmdshell には SQL Server サービス アカウントと同じセキュリティ コンテキストがあり、必要以上に機能するため、問題があります。
この欠点を取り除く最初のアイデアは、CLR コードを使用することです。CLR は、コードを呼び出したユーザーのアクセス許可で実行されています。次の手順を作成しましたが、正常に動作します。このコードを実行しているアカウントのアクセス許可を使用していることがわかります。
これは良い解決策です。なぜなら、私は BCP 呼び出しを台無しにしていないからです (引数は同じです)。ロジックに大きな変更はないため、エラーのリスクはありません。
したがって、T-SQL での BCP の以前の呼び出しは、次のように見えていました。
今、私はそれをこのように呼びます:
問題は、xp_cmdshell の bcp コードを取り除く方法は他にあるのでしょうか? PowerShell(sqlps)が使えると聞きました。しかし、私が見つけた例では、powershell スクリプトを作成するよう提案しています。このようなスクリプトを t-sql コードから呼び出すことはできますか? このコード (powershell スクリプト) をどのように保存する必要がありますか? データベースオブジェクトとして?それとも何か他の方法があるのでしょうか?SSIS は必要ありません。私が知りたいことのほとんどは、powershell についてです。
アドバイスをありがとう。
azure-sql-database - SQLPS モジュールを Azure Automation にインポートする方法は?
SQLPS を使用して (別のサブスクリプションで) Azure SQL サーバーに接続しようとしています
認証方法はSQLサーバー認証です。
モジュール SQLPS をインポートしようとすると、次のエラーが発生します。
エラー: import-module : どのモジュール ディレクトリにも有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'sqlps' はロードされませんでした。
Windows PowerShell から同じ Azure SQL サーバーに接続できますが、Azure Powershell で同じことを実行できない理由がわかりません。powershell がこれを理解するには、適切な .psm1 モジュールが存在する必要があることは理解していますが、その方法について誰か助けてもらえますか?
モジュールのエクスポート/インポートを試みました
C:\Program Files\Microsoft SQL Server\120\Tools\PowerShell\Modules
そして運動もしませんでした...