5

SQL Management Studio 2008 Express をローカルの SQL Server 2008 Express インスタンスへのグラフィック インターフェイスとして使用しています。どちらも、Web プロジェクトのテストおよび開発インターフェイスとしてのみローカルに使用しています。

最近、SQL コーディングに自信が持てるようになり、より複雑な SQL を使用するようになりました。私の最新の調査分野はトリガーです。しかし、驚いたことに、私は自分のサーバー インスタンスに対する管理者権限を持っていないようです。つまり、デバッグやアクセス権の変更などの簡単なことを行うことができません。

デバッグを開始しようとすると、許可が拒否されたというメッセージが表示されます。別のデータベースに対する許可規則を管理しようとしたときにも、このメッセージが表示されました。これは、サーバーをインストールしたときに選択したオプションと関係があると思われますが、すでにいくつかのデータベースをセットアップしてデータでいっぱいにしているので、すべてをアンインストールして再インストールする必要はありません.

サーバー インスタンスのマスター管理者であるユーザー アカウントを変更する方法はありますか? そうでない場合、たとえばトリガーをデバッグする権限を取得する他の方法はありますか?

4

2 に答える 2

5

ローカル管理者アカウントとしてコンピューターにログオンします。デフォルトでは、これは MSSQL の sysadmin ロールである必要があります。

SSMS を使用して、統合認証を使用して MSSQL インスタンスに接続します。これでシステム管理者になりました。sysadmin として、通常のユーザー アカウントを sysadmin ロールに追加できるようになりました。

EXEC sp_addsrvrolemember @loginame = 'PC_OR_DOMAIN\loginname', @rolename = 'sysadmin'

SSPI (別名統合認証、別名 SSMS の起動時に別のユーザー名とパスワードではない) を使用する場合は、Windows ログインをログイン名として使用するだけです。Sql サーバー認証 (別名、ユーザー名とパスワード) を使用する場合は、ユーザー名を loginame として使用します。他のログイン名を使用すると、アカウントも作成されます。

GUI内でそれを行う方法は確かにありますが、その方法を説明する便利なATMはありません。Security -> Logins -> Properties の下にあり、さまざまなサーバーの役割のチェックボックスがあると思います。

編集: Vista でローカル管理者アカウントを有効にするまた 、ローカル管理者 (ユーザー アカウントがローカル管理者グループの下にリストされている) の場合、デフォルトではシステム管理者です。sysadmin ロール (SQL) と Local Admins グループ (Vista) のメンバーを再確認することをお勧めします。

Edit2: 結局のところ、SQL 2008はBUILTIN\Administators を追加しませ。その場合、何を追加したかを確認する必要があります。これは Logins ノードから利用できるはずです。sysadmin ログインを選択しないと、MSSQL Adminからロックアウトされる可能性があることに注意してください。その場合、再インストールします。MSSQL を停止し、*.MDF および *.LDF ファイルをコピーすることにより、データベースを保存できます。再インストール後、それらをコピーして戻し、sp_attach_db を使用して再接続します。

于 2009-04-19T00:15:28.627 に答える
0

SQLServer構成マネージャー。

これにより、インスタンスアカウントを設定できます。

ただし、データベースの所有者を、データベースに接続するユーザーに変更することをお勧めします。SSPIを使用している場合、これはログインしているユーザーになります。SQL認証を使用している場合、これは接続文字列内で接続しているユーザーになります。

追加:

Windows XP以降でデバッグしていて、管理者(ローカル)でない場合は、そのシステムの「ユーザーのデバッグ」グループに配置する必要があります。それ以外の場合は、メモリにアクセスしたり、所有していないプロセスにデバッガを接続したりすることは大したことではありません。

于 2009-04-18T23:41:26.197 に答える