最近、SQL Server 2008 R2 Expressにアップグレードされました。 id myuserでWindows認証を使用してログインした後にデータベースを作成しようとすると、次のエラーが表示されます。
Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)
データベース 'master'でデータベースの作成権限が拒否されました。 READE HEADERONLYが異常終了していますエラー262
Sysadminロールをmyuserに追加しようとすると、表示されるエラーが表示されます。
ServerRole 'sysadmin'のメンバーの追加に失敗しました。 (Microsoft.SqlServer.Smo)
Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)
ユーザーにはこのアクションを実行する権限がありませんエラー15247
このコマンドを使用して、T-SQLでユーザーにこのロールを追加しようとすると、
EXEC sp_addsrvrolemember 'ziffenergy\myuser', 'sysadmin';
GO
ここに私が受け取るエラーがあります:
メッセージ15247、レベル16、状態1、プロシージャsp_addsrvrolemember、行29
ユーザーには、このアクションを実行する権限がありません。
誰か提案はありますか?ローカルマシン上のデータベースでは何もできないようです。私は使用しているWindows 7ワークステーションの管理者であり、SQL Server Management Studioを使用してネットワークIT Testデータベースサーバーでデータベースやユーザーを作成または変更しようとしても問題なく実行できます。
あなたはワークステーションの管理者かもしれませんが、それはSQL Serverにとって何も意味しません。問題のアクションを実行するには、ログインがsysadminロールのメンバーである必要があります。既定では、ローカル管理者グループはSQL 2008 R2のsysadminロールに追加されなくなりました。自分に権限を付与するには、他の何か(たとえばsa)でログインする必要があります。
パーティーに遅れて来ましたが、私はこれを見つけました 素晴らしいステップバイステップガイド saパスワードを持っていない場合、SQLExpressインスタンスの制御を取得することについて。このプロセスを使用して、saパスワードをリセットするだけでなく、使用可能なすべてのサーバーロールにドメインアカウントを追加しました。通常のログインを使用して、データベースの作成、ログインの変更、一括操作、バックアップ/復元などを行うことができます。
要約すると、SQL Server構成マネージャーを使用して、インスタンスをシングルユーザーモードにします。これにより、接続時にsysadminに昇格し、すべてを設定できるようになります。
編集:以下の手順をコピーしました-上記のリンクの元の作者に称賛を送ります。
SSMS 2012では、次を使用する必要があります。
シングルユーザーモードを有効にするには、SQLインスタンスプロパティで、「Advance」タグに移動しないでください。「Startup Parameters」タグが既にあります。
私はkillthrushの答えの手順に従ったが、驚いたことにうまくいかなかった。 saとしてログインすると、Windowsドメインユーザーが表示され、sysadminになりましたが、Windows認証でログインしようとすると、ログイン中にログインが表示されず、データベースを作成できませんでした。 そのログインは、おそらく同じ名前の別のドメインアカウントに関連付けられています(内部ID /隠しIDが正しくありません)。しばらく前にこの組織を離れ、その後数か月後に戻ってきました。古いアカウント(削除された可能性がある)を再アクティブ化する代わりに、同じドメイン\ユーザー名と新しい内部IDを持つ新しいアカウントを作成しました。 saを使用して、古いログインを削除し、同じ名前で再度追加して、sysadminを追加しました。 Windows Authで再度ログインすると、すべてが正常に表示されます。これで、ログイン(およびその他)が表示され、Windows認証ログインを使用してsysadminとして必要なことをすべて実行できるようになりました。
Windowsマシンに2つのアカウントがあり、そのうちの1つでこの問題が発生していました。 sa
アカウントを使用したくなかったため、Windowsログインを使用したかった。 SQL Serverのインストールに使用した他のアカウントに単純にサインインし、そこから新しいアカウントのアクセス許可を追加する必要があることは、すぐにはわかりませんでした
(SSMS > Security > Logins > Add a login there)
そこに追加する必要がある完全なドメイン名を取得する簡単な方法open cmd echoそれぞれ。
echo %userdomain%\%username%
そのユーザーのログインを追加し、master dbおよび必要な他のデータベースのすべての許可を与えます。 「すべてのアクセス許可」と言うときは、「拒否」アクセス許可のいずれもチェックしないようにしてください。