2012-02-07 22 views
14

最近SQL Server 2008 R2 Expressにアップグレードされました。私は私のid roger.mooreでWindows認証を使用してログインした後にデータベースを作成しようとすると、私はこのエラーが表示されます。SQL Server 2008 R2 Expressのアクセス許可 - データベースの作成またはユーザーの変更はできません

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
CREATE DATABASE permission denied in database 'master'. RESTORE HEADERONLY is terminating abnormally Error 262

私はroger.mooreしsysadminロールを追加しようとすると、これは私が受信エラーであります:

Add member failed for ServerRole 'sysadmin'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
User does not have permission to perform this action Error 15247

私は、このコマンドを使用して、T-SQLと私のユーザーにこの役割を追加しようとすると、ここで

EXEC sp_addsrvrolemember 'ziffenergy\roger.moore', 'sysadmin'; 
GO 

は、私が受け取るエラーです:

Msg 15247, Level 16, State 1, Procedure sp_addsrvrolemember, Line 29
User does not have permission to perform this action.

誰にも提案はありますか?私はローカルマシン上のデータベースで何もできないようです。私が使用しているWindows 7ワークステーションの管理者であり、SQL Server Management Studioを使用してネットワークITテストデータベースサーバー上でデータベースまたはユーザーを作成または変更しようとすると、問題なく処理できます。

答えて

12

あなたはワークステーションの管理者かもしれませんが、それはSQL Serverに何も意味しません。問題のアクションを実行するには、ログインがsysadminロールのメンバーである必要があります。既定では、ローカル管理者グループはSQL 2008 R2のsysadminロールに追加されなくなりました。権限を与えるには、他のもの(たとえばsa)でログインする必要があります。

+0

フィードバックいただきありがとうございます。はい、saを使用してログインしようとしました。 (Microsoft.SqlServer.Smo)Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。(Microsoft .SqlServer.ConnectionInfo)存在しないか権限がないため、ログイン 'sa'を変更できません(Microsoft SQL Server、エラー:15151)。 – Roger

+0

同じ問題です。アカウントにSQLインスタンスで必要な権限がないため、パスワードを設定できません。 sysadmin特権を持つアカウント(またはあなたの状況では非常にそうではない特別な特別な特権)を使用しているアカウントの場合、ログインの詳細がわからない場合は、そのアカウントから取得する必要があります。 – squillman

+1

私は自分のワークステーションにSQL Server 2008 R2ソフトウェアをインストールした人なので、必要な権限は必要ありませんか? – Roger

37

パーティーに遅れてしまいましたが、saパスワードをお持ちでない場合は、fantastic step-by-step guideがSQLExpressインスタンスの制御権を取得しています。このプロセスを使用して私のsaパスワードをリセットするだけでなく、使用可能なすべてのサーバーロールに自分のドメインアカウントを追加しました。私は今、通常のログインを使用してデータベースを作成し、ログインを変更し、一括操作、バックアップ/リストアなどを行うことができます。

要約すると、SQL Server Configuration Managerを使用して、インスタンスをシングルユーザーモードにします。これにより、接続時にシステム管理者が昇格し、すべてを設定できるようになります。

編集:上記のリンクの元の著者に、以下の手順を書きました。左ペインの

  1. 管理者(または管理者権限を持つユーザー)としてコンピュータにログオン
  2. を開き、「SQL Server構成マネージャ」
  3. をクリックし、「SQL Serverのサービス」
  4. 停止」右側のウィンドウでSQL ServerとSQL Serverエージェントのインスタンスが実行されている場合
  5. SQL Serverを右クリックして[SQL Server]インスタンス - > [プロパティ]をクリックしてシングルユーザーモードでSQL Expressを実行します構成マネージャー)。
  6. [詳細設定]タブをクリックし、[スタートアップパラメータ]を探します。新しい値が-mになるように「スタートアップパラメータ」を変更します。 (例:<>) 例: from:-dc:\ Program Files \ Microsoft SQL .............(文字列の末尾) to:-m; -dc:\プログラムFiles \ Microsoft SQL .............
  7. MS SQL Server Management Studioを開き、認証モードとして「Windows認証」を使用してSQLサーバーにログオンします。シングルユーザーモードでSQL Serverを実行し、管理者権限でコンピュータにログオンしているので、データベースへの "sysadmin"アクセス権が与えられます。
  8. 「ログイン」ノード
  9. ダブルクリックして「SAのログイン
  10. 変更複雑なパスワードを入力して、パスワードを展開
  11. 左ペインでMS SQL Server Management Studioの「セキュリティ」ノードを展開します「パスワードポリシーを強制する」にチェックが入っていれば、それ以外の場合はパスワードを入力するだけです。
  12. 左側のペインの[ステータス]をクリックして、 "sa"アカウントが "有効"になっていることを確認します。 「ログイン」の下のラジオボックスを「有効」に設定します
  13. MS SQL Server Management Studioのメインウィンドウに戻って、SQL Server認証が使用されているかどうかを、 (通常は "\ SQLEXPRESS(SQL Server)")を選択し、プロパティを選択します。左ペインで
  14. をクリックし、「セキュリティ」と「SQL ServerおよびWindows認証モードは」「サーバー認証」
  15. MS SQL Server Management Studioの
  16. からクリックし、「OK」
  17. 外し下に選択された一つであることを確認
  18. 「SQL Server Configuration Manager」を再度開き、SQL Serverインスタンスを停止します。
  19. SQL Serverインスタンスを右クリックし、[詳細設定]タブをクリックします。再度 "スタートアップパラメータ"を探し、 "-m;"を削除します。以前に追加したものです
  20. クリックして「OK」と再びSQL Serverインスタンスを起動し
  21. あなたは今、あなたがステップで設定した新しいパスワードを使用して「SA」としてログオンすることができるはずですSSMS 2012年12
+0

この回答は完璧に私のために働いた。ありがとうございました! – Francisc0

+0

ありがとうございました!!! – JATMON

+1

SQL Server 2008 R2 Enterpriseでも動作します。ありがとう! – Edo

2

SQLインスタンスのプロパティでシングルユーザーモードを有効にするには、 "Advance"タグに移動しないでください。既に "Startup Parameters"タグがあります。

  1. 「-m;」を追加します。パラメータに変換する。
  2. Windows認証を使用してサービスを再起動し、このSQLインスタンスにログオンします。
  3. 残りの手順は上記と同じです。セキュリティのWindowsユーザーアカウントのアクセス許可を変更するか、SAアカウントのパスワードをリセットします。
  4. 最後に、「スタートアップパラメータ」から「-m」パラメータを削除します。
0

Windowsマシンに2つのアカウントがあり、そのうちの1つでこの問題が発生しました。私はsaアカウントを使用したくない、私はWindowsログインを使用したいと思った。それは

(SSMS > Security > Logins > Add a login there)

そこからフルを取得するための簡単な方法私は単に私がSQL Serverをインストールするために使用される他のアカウントにサインインする必要があると私にはすぐに明らかではなかった、新しいアカウントの権限を追加しますあなたがそこに追加する必要があるドメイン名はそれぞれcmd echoを開きます。

echo %userdomain%\%username% 

そのユーザーのログイン情報を追加し、master dbと必要な他のデータベースに対するすべての許可を与えます。 「すべてのアクセス許可」と言うと、「拒否」アクセス許可のいずれもチェックしないようにします。なぜなら、それは反対のことを行うからです。

1

私はkillthrushの答えのステップに従いました。私の驚いたことに、それはうまくいきませんでした。 saとしてログインする私はWindowsドメインユーザーに会ってsysadminにしてもらえましたが、Windowsの認証でログインしようとしたときに、ログインしているログインを見ることができず、データベースなどを作成できませんでした。 そのログインはおそらく、同じ名前の別のドメインアカウントに関連付けられていました。私はこの組織をしばらく残してから数か月後に戻ってきました。以前のアカウント(削除された可能性のある)を再度アクティブ化する代わりに、同じドメイン\ユーザー名と新しい内部IDを持つ新しいアカウントを作成しました。 saを使用して私の古いログインを削除し、同じ名前でそれを再追加し、sysadminを追加しました。私はWindows認証でログオンして、すべてのことが必要なように見えます。私は今私のログイン(と他のもの)を見ることができ、私はWindowsの認証ログインを使ってsysadminとして何をする必要があるかを行うことができます。

+0

ドメインアカウントに関する良い点 - おそらく、フードの下にある別のSID。この種のことを確認するには、あまりにも痛みを伴うことなくpowershellを使うことができます:http://windowsitpro.com/windows-server/find-sid-account-using-powershell – killthrush

関連する問題