SQLの管理権限のあるユーザーを調べたい

このQ&Aのポイント
  • SQLの管理者権限のないユーザーに対して、インストーラーの実行時に管理権限のあるユーザーでログインするように要求する方法を知りたいです。
  • 既にSQLがインストールされているPCにインストールしようとするとエラーが発生し、管理権限のあるユーザーでリトライする必要があります。
  • インストーラーを実行した際に、管理権限のあるユーザーが誰なのかを特定する方法を教えてください。
回答を見る
  • ベストアンサー

SQLの管理権限のあるユーザーを調べたい

【理想】 既にSQLServerExpress2005以降(以下SQL)が入っているPCに対して、 SQLの管理者権限がないユーザーがインストーラーを実行した際、 ・このユーザーは管理権限がないこと ・管理権限があるユーザーは○○というユーザーなので、○○というユーザーで ログインし直してからインストールして欲しい というメッセージを出したい 【現状】 SQLをデータベースとして開発したソフトウェアがあり、 インストーラーを実行すると、SQLと開発したソフトウェアが自動インストールされるようになっています。(既にSQLがインストールされている場合はSQLはインストールしない) インストーラーは、Inno Setupを利用しています。 ここで問題になっているのが、 既にSQLがインストールされているPCにインストールしてもらった際に、 SQLの管理者ではないユーザーでインストールしようとするとエラーになることです。 ユーザーに上記を伝えて、権限のあるユーザーでやり直してもらって(もしくは一旦SQLをアンインストールして)、再度上記インストーラーを実行してもらう必要があるのですが、権限のあるユーザーが誰か答えられるユーザーがほどんどいません。 今は、インストーラーを実行した際、既にインストールされていれば、 仮のデータベースを作るテストをしてみて、出来ればOK、出来なければ、「インストール出来ないから管理権限のあるユーザーでログインしてほしい」のようなメッセージを出してセットアップを中止するようにしています。 インストーラーを実行した際、管理権限のあるユーザーが誰なのかが分かる方法はないでしょうか。色々試してみたのですが、「管理者権限がない」という応答しか返って来ません。 同様の悩み(対応)は他のソフトでも同様だと思いますが、 どのように解決しているのかを教えて頂ければ助かります。 分かる方ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「管理者権限のあるユーザーでインストールすること」 という注意だけで済む話だと思うんだけど。 インストーラーがわざわざ 「あなたは管理者権限をもっていません。一度ログオフして xxxx または yyyy または zzzz でログインしてから再度インストーラーを実行してください。」 とか言う? というか Inno Setup って使ったことないけど設定でセットアップ実行中のユーザーが Admin 権限を持っているか確認できるようにできるんじゃないの? どうしても実現させたいっていうなら、Inno Setup がプログラムのセットアップよりも前に下のような VBScript を実行するとか。 Option Explicit Dim userNameList Dim strComputer strComputer = "." Dim objGroup Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators") Dim objUser For Each objUser In objGroup.Members If objUser.Class = "User" Then userNameList = userNameList & objUser.Name & vbCrLf End If Next WScript.Echo "このコンピューターの管理者権限を持つユーザー一覧:" & vbCrLf & userNameList またはコマンドプロンプトで net localgroup Administrators とさせるとか。 または net localgroup Administrators をVBScript で実行させるとか。 Set objShell = CreateObject("Wscript.Shell") strCommand = "net localgroup Administrators" Set objExec = objShell.Exec(strCommand) Do Until objExec.Status Wscript.Sleep 250 Loop Wscript.Echo objExec.StdOut.ReadAll()

hoshio99
質問者

お礼

非常に遅いお礼になって申し訳ございません。 助言頂いたように、コマンドプロンプトで事前にAdmin権限を調べて処理するロジックを追加しました。 アドバイスありがとうございました。

hoshio99
質問者

補足

ありがとうございます。 調べたいのは、SQLのサーバーロールにadmin権限があるユーザーが誰かということです。OSのadminにSQLの管理権限があるとは限らないので困っています。 1台ずつ私たちが出向できればいいのですが、基本はWeb配布なので一般の方が自身でインストールすることになります。 その際に既にSQLがインストールされているPCでこのトラブルが多いので何とかならないかと思い投稿しました。

その他の回答 (1)

回答No.2

sp_helpsrvrolemember というストアド プロシージャを使えば指定したサーバーレベル ロールのメンバーを得ることができます。 VBScript 等で SQL Server にアクセスして上記プロシージャが返すレコードを展開すれば良いかと。 しかしそれなりの権限があるユーザーで実行しないと取得できないと思います。

hoshio99
質問者

お礼

お礼が遅くなって申し訳ございません。 解決しました。ありがとうございました。

hoshio99
質問者

補足

回答ありがとうございます。 既にそのプロシージャと同じ情報をSQLで取得するようになっています。 他のSQLServerを利用したソフトウェアはどうやってこのあたりの問題の解決しているのでしょうか。もしくは既にSQLが入っているPCにはインストール不可とかってしてるんでしょうか。。。

関連するQ&A

  • 管理者権限のユーザー

    確定申告用に利用者クライアントソフトをダウンロードしたのですが、現在ログインしているユーザーは管理者権限ではありません。管理者権限のユーザーで再度当インストーラを実行してください。と表示され開くことができません。 ※OKWAVEより補足:「富士通FMV」についての質問です。

  • 管理者権限のユーザーで入っているのにソフトがインストールできない

    ノートンインターネットセキュリティー2004をインストールする際に、管理者権限のユーザーでインストールするようにメッセージが出てきました。管理者権限ユーザーでログインしていたのですが、仕方なく、他のユーザーでログインしてみましたがだめでした。 Win98SEを使用しています。 最近ユーザーをいろいろと作成したり削除したりしていた事もあって、管理者権限のユーザーを間違えて削除してしまった可能性もあります。 今入れているノートンインターネットセキュリティー2003は期限が切れてしまっているのですごい不安です。 どなたかよい対処法をご存知でしたら教えていただけますか?

  • ユーザーに与える権限に付いて

    SQL Server2008でDBを管理しているのですが、 エンドユーザーに与える権限に付いて教えて下さい。 ACCESS ADPから接続してデータの登録、更新、削除を行ないます。 現在、ログインでsysadminをチェックしないと上記の作業が出来ません。 データベースユーザー全てのロールをチェックしてもログインで sysadminがチェックしてないと動作しません。 エンドユーザーのログインではsysadminをチェックしない方がいいと 考えるのですが、その場合各データベースのセキュリティはどのように 設定したらいいのでしょうか?

  • 管理者権限のユーザーが分かりません

    私が所属している会社で、管理者権限のあるユーザーとパスワードが分からなくなってしまいました。 WindowsXP Professional SP2です。 元々管理者権限だったユーザーのユーザー名を変更したら、 知らない間に管理者権限が外されてしまったようです。 (通常有り得ないので、誰かがいじったのか・・・?) そして、Administratorユーザーのパスワードも誰も知りません。 はたまた、Administratorユーザーが存在するかすらもう分かりません。 一応、管理者権限ではないユーザーであればログインは出来るようです(多分Userグループ)。 どうにかして、ログインしたユーザーに管理者権限を付与するか、 管理者ユーザー、パスワードが分かる方法はありますでしょうか?(後者は有り得ない・・・) 出来ればリカバリーは避けたいと祈るばかりです。 また、どこにユーザー情報は保持されているものなのでしょうか?分かったら好き勝手にいじれそうですが、 設定するからにはどこかにあると思うのですが・・・。 宜しくお願い致します。

  • FILE権限があるはずなのにSQLファイルを実行出来ない

    MySQL 3.23.58(Linux)です。 testというデータベースを作成し、ユーザtestuserにこのtestデータベースへのFILE権限やUPDATE権限など一通り持たせています。 ユーザ「testuser」でMySQLにログインし、use test;とすると、Database Changedと出てデータベースの編集が可能になるのですが、 mysql -u testuser -p ***** test < backup.sql この様にbackup.sqlというSQLファイルを実行しようとすると、ERROR 1044のアクセス権限がありませんエラーが表示されてしまいます。 SQLファイルをtestデータベースに反映させるにはどうすればいいでしょうか?

  • 管理者権限でのログインについて教えて下さい

    管理者権限でのログインについて教えて下さい CD.DVDライティングソフト[Bs Recoder]のバージョンアップをやろうと して居ます ダウンロードしてインストール開始ボタンを押すと「プログラム ホルダ」への書き込みに失敗しました 管理者権限を持つユーザーでログイン してからアップデータを実行してください、とエラー表示します パソコンを使うのは私一人で専用品なので今までにプログラムのインストール やアップデータなど実行して来ましたが このような事は初めてで 管理者権限を持つユーザーでログインとはどのように対応すれば良いか操作の 方法が判りません、どなたか教えて頂きたくお願い致します

  • 管理者権限・・・。

    実は次のことで困っています・・・。 XPのPROを利用しています。 そこで,マイクロソフトアップデートを行うために, 管理者権限のあるユーザーでログオンまで行き, マイクロソフトアップデートまでページ表示を完了し, カスタムでダウンロードとインストールを行おうとしても, ダウンロードまでは完了するのですが,インストール画面で 失敗しましたという表示がありました。 個別で番号を把握してセットアップをかけようとしても, 管理者権限でログオンしているのにもかかわらず, 『管理者権限でログインしていない』旨のセットアップ エラーが表示されます・・・。 どうかお知恵を・・・。

  • 管理者権限とAdministrator

    windows xp pro sp3を使用しています。 janetterというtwitterクライアントをインストールしようとしたところ、 セットアップが上手くいきませんでした。 原因は「管理者権限でセットアップしていない」からとのことですが、 現在使用しているアカウントはコンピュータの管理者権限を持っています。 (他に使用しているアカウントもありません。) ただ、XPを使い始めてから数ヶ月間、Administratorのまま動かしていたことがあり、 そのせいか、セットアップもAdministratorで行うと上手くいきます。 そこで質問なのですが、   ・Documents and SettingsにはAdministratorと【現在ログインしているユーザ名】の    フォルダがそれぞれあるものなのでしょうか  ・ない場合→【現在ログインしているユーザ名】とAdministratorの統合は可能ですか   ・管理者権限でインストールが上手くいかない原因が他にあるのでしょうか どなたかご教示ください。

  • バッチファイルを配布して、管理者権限で実行したい

    社内のドメイン環境です。PCはすべてXP Proで、ドメインに参加しており、通常はユーザ権限でログインして使っています。 各PCに、ファイル圧縮用のソフトを配布してインストールまで実行させる、バッチを組んだのですがadmin権限であれば、当該ソフトのインストーラーは正常に動きます(当たり前ですが)。 しかし、ユーザ権限ではこのインストーラを動かすと、「管理者権限で・・」となってしまい実行できません。 目的は、XPに付属している圧縮フォルダの機能では、パスワードを書けたとしても中身のファイルが見えてしまうので、機能として不足してるため、各PCに圧縮ソフトのインストーラを配布して自動的に実行させようとしていたわけです。 ついては、以下いずれかの方法をご存じの方がいらっしゃいましたら、ご教示頂けますようお願い致します。 1. バッチファイルのなかから、インストーラーを管理者権限で実行させる 2. 圧縮ソフトで、管理者権限がなくともインストール可能なもの(zipにパスワードを掛けられることが必須) 3 その他、こんな方法なら目的を満たすのでは? といういずれかの知恵を頂ければ幸いです。 よろしくお願い致します。

  • Windows8 管理者権限

    windows8.1でローカルユーザの権限がアドミニストレータになっており、 UACも通知しないに設定したのですが、ファイルをCドライブの配下にコピーしようとすると 「このフォルダへコピーするには管理者権限が必要です」が表示されます。 コマンドプロンプトから net user administrator /active:yes を実行し、administratorを有効後、administratorでログインすると メッセージは表示されませんが、ローカルのユーザでログインすると やっぱり、管理者権限が必要ですと表示されます。 セキュリティうんぬんの話はさておき、このメッセージを出さずに 常に管理者権限で利用するにはどうすれば良いでしょうか?