新規saの作成方法について

このQ&Aのポイント
  • SQLServer2005StandardでWindowsXPProにインストールした後、SQLマネージメントスタジオでsaの作成を試みたが失敗しました。
  • 解答として、直接コンソールからの操作でsaを有効にする方法があります。
  • 質問者はSQLマネージメントスタジオでの作成を希望しており、方法を教えて欲しいとおっしゃっています。
回答を見る
  • ベストアンサー

新規saの作成方法について

sqlserver2005standardでwindowsXPproにインストールしました インストール後にsaを SQLマネージメントスタジオで対象サーバの[セキュリティ][ログイン]と展開して右ペインの[sa]をダブルクリックして状態のログイン を有効にしてからパスワードをいれてokすると ユーザー'sa'の作成に失敗しました transactSQLステートメントまたはバッチの実行中に例外が発生しました。 特殊なプリンシパル'sa'は使用できません。 とエラーがでます 前に他の方の質問の解答で 直接コンソールより c:\>sqlcmd-e-s\SQLEXPRESS 1>ALTER LOGIN SA ENABLE と、ありましたがよくわかりません できればSQLマネージメントスタジオの方で 作成できればとおもうのですが よろしくご教授おねがいします

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

1回目と2回目で内容に食い違いがあるようですが、結局saは有効になっているのですね?いかなる方法であれログインできるのであればsaアカウントには問題ないでしょう。 >当然のことながら以前から同じpc内からサーバーへの接続でwindows認証でもsql認証でログインsaパスワード****を入れますと接続できます というのはおかしいです。認証モードがWindows認証であればsaでは入れません(サービスを再起動していないなどの理由で認証モードが変わっていない状態での話かと推測します) また、saというのは特殊であり、データベースユーザになることはできません。ユーザマッピングを指定したときにユーザ:saとしたのがエラーメッセージの理由です。そもそもsaというのはサーバロールとしてsysadminが付与されているため、個別データベースへのマッピングを行う必要がありません(ちなみにsaからsysadminを外そうとしても同じエラーが出ます)。 リモートアクセスできない理由はおそらくはリモート接続を認める設定になっていないからでしょう。とりあえず以下の諸点を確認することをお勧めします。 ・SQL Serverのセキュリティ構成でリモート接続を認めるにしているか ・SQL Server構成ツールで名前付きパイプまたはTCP/IPが有効になっているか ・SQL ServerのインストールされているPCのファイアウォールはどうなっているか、IPは固定になっているか (名前付インスタンスであれば、さらにチェック項目が増えるのですが)

hiyotom
質問者

補足

早速の回答ありがとうございます ・SQL Serverのセキュリティ構成でリモート接続を認めるにしているか はい、リモート接続を認めるにしています ・SQL Server構成ツールで名前付きパイプまたはTCP/IPが有効になっているか はい、TCP/IPは有効になっています ・SQL ServerのインストールされているPCのファイアウォールはどうなっているか、IPは固定になっているか はい、IPアドレスはサーバー192.168.0.65およびクライアント192.168.0.77になっていますゲートウエイは192.168.0.1でpc双方の共有ホルダはすべて見えております インターネットには接続してありませんのでウイルスバスター無効、windowsのファイアーウォールも無効にしてありますが念のため例外で1433のポートを登録してあります クライアントであるpcのosはwindowsxp_homeでもwindowsxp_proでも同じように接続テストすると「プロバイダの初期化中にエラーが発生したため接続テストに失敗しました、ユーザー'sa'はログインできませんでした」とメッセージがでます サーバー側でログイン設定で何かしなければいけないのでしょうか よろしくおねがいします

その他の回答 (2)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.3

「データベースに接続できません」から「ユーザー'sa'はログインできませんでした」に変わっていますね。。 考えてみましたが、一般的な設定には特に問題は見当たらない上に、「ログインできませんでした」ということはデータベースは見えているということですから。 そうすると、管理メニューにあるSQLサーバログにはログインに失敗したログが書かれているはずです。その内容により、なぜログインが失敗したか、メッセージおよび状態コードで判断できることがあります。 http://msdn.microsoft.com/ja-jp/library/ms366351(SQL.90).aspx また、他のsysadminユーザを新規作成して、そのユーザでも試してみるとsaだけが問題なのかも判断できると思います。

hiyotom
質問者

お礼

接続できましたー\(^ ^)/ ありがとうございました [DBNETLIB][connectionopen(preloginhandshake().]一般的なネットワークエラーです:ネットワークのマニュアルを調べて下さい とでましたのでおかしいと思い、クライアントpcを再起動してから再度accessで接続をしてみると[ユーザー名]sa でパスワードを要求されたので****いれますと接続できました。これで設定をもう一度確認してみます。いろいろ迅速に何回もご丁寧に回答ありがとうございました、これからもご指導よろしくお願いします、本当にありがとうございました

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

そもそもですが、インスタンスのサーバ認証モードはSQL Server認証になっていますか?

hiyotom
質問者

補足

はい、構成ツールのセキュリティー認証で混合モードに変更しました 当然のことながら以前から同じpc内からサーバーへの接続でwindows認証でもsql認証でログインsaパスワード****を入れますと接続できます ただここでパスワードを入れなかったり違うパスワードを入れたりすると「サーバーとの接続は正常に確立しましたがログイン中にエラーが発生しました(provider:共有メモリプロバイダ,error:0-パイプの他端にプロセスがありません)とででしまいます 正しいパスワードをいれると接続できるということはsaは正常に作成できているということでしょうか でも他のpcからリモート接続しようとしてsaとパスワードをいれても 「データベースに接続できません」とでてしまいます これが本来の質問ですので、よろしくお願いします それからSQLマネージメントスタジオで対象サーバの[セキュリティ][ログイン]と展開して右ペインの[sa]をダブルクリックして状態のログインは有効になっています ユーザーマッピングで目的のデータベース名のチェックが入っていなかったので入れてユーザーをsa規定のスキーマをdboにしてokすると「ユーザー'sa'の作成に失敗しましたtransactSQLステートメントまたはバッチの実行中に例外が発生しました。特殊なプリンシパル'sa'は使用できません。」 と同じエラーがでます

関連するQ&A

  • ビューが作成できない

    MSDE2000 Release Aをインストールして SQL Server Management Studio Expressを使い 最近SQLを学んでいるのですが CREATE VIEWを使うとエラーメッセージとして 'CREATE VIEW' は、クエリ バッチの最初のステートメントでなければなりません。 というような表示がされてビューを作成できません。 この場合どのようにすればこのエラーがなくなり、ビューを作成できるのでしょうか? どなたか教えてください。よろしくお願いします。

  • SQL SERVER 2005におけるメンテナンスプラン利用時のsaユーザーのパスワード変更について

    教えてください! SQL SERVER 2005 SP3の環境でSQL Server Management Studioを起動し、メンテナンスプランにてユーザーデータベースのバックアップや圧縮などを行っています。 先日、saのパスワードを変更したところ、メンテナンスプランのジョブがエラー(エラーコード18456:ユーザー 'sa' はログインできませんでした)で動かなくなりました。saのパスワードを元に戻したところ、エラーはなくなります。 saのパスワードは管理上定期的に変更したいと考えています。 パスワードを変更する度にジョブを作成し直すのは大変です。何か良い方法はないでしょうか? 分かる方がいましたら、教えてください。 よろしくお願い致します。

  • SQLサーバー認証でログインを作成できません。

    はじめまして、宜しくお願いします。 SQL Server2005で新規にログインを作成しようと思います。 1.Microsoft SQL Server Management Studio Expressを起動 2.「セキュリティ」の「ログイン」を右クリックで「新しいログイン」をクリックし、ログイン新規作成画面を起動 3.任意のログイン名をいれ、SQL Server認証を選択し、パスワードを設定、既存のデータベースを選択。 4.この状態でOKをクリックすると以下のメッセージが出てエラーとなってしまう。 =================================== ログイン 'xxxx' の作成に失敗しました。 Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.Express.ConnectionInfo) このバージョンの Microsoft Windows では、MUST_CHANGE オプションはサポートされません。 (.Net SqlClient Data Provider) =================================== 何か原因に心当たりのある方がいらっしゃいましたらお願い致します。

  • ログインユーザ(sa)について

    Windows7 環境で SQL Server 2008 Express を インストールしたのですが、saでログインできませんでした。 インストール時の認証モードには「混合モード」を選択しました。 自分なりに調べた結果、 『windows認証でログイン後、[オブジェクトエクスプローラ]の [セキュリティ]-[ログイン]より「sa」アカウントを選択して[プロパティ]を開き、 「sa」のログインを「有効にする」』 とあったので試したところ、「エラー:15151」が発生し、変更できませんでした。 関係ないかもしれませんが、 「BUILTIN\Users」に「sysadmin」ロールを付与しようとしても、 「エラー:15247」でできませんでした。 どうすれば『「sa」のログインを「有効にする」』ことができるのでしょうか。 どなたか、ご教示宜しくお願いいたします。

  • ログインユーザーの追加について

     SQL Serverで、データベース"GRSdb"を作成しました。 Management Studioにてログインユーザーを追加しようと思い、新規ログインを作成しようとしましたが、下記のようなエラーメッセージが表示されました。  ログイン"uzuracch"の作成に失敗しました(MicroSoft.SqlServer.Smo) 追加情報  Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (MicroSoft.SqlServer.ConnectionInfo)  ユーザーにはこの操作を実行する権限がありません(MicroSoft SQL Server,エラー:15247) .このエラーに対する対処が分かりません。よろしくお願いします。 開発環境は、Windows7,VB2010PRO,SQLServer2008R2Expressです。

  • SQL Server 2005 Express Editionでのデータベース作成

    下記の記事を参考にVS2005を用いてSQLデータベースを作成しようとしたのですが、図2のMyDB.mdf作成の時に ユーザー'******'はログインできませんでした と出て作成できなくて困っています。 どなたか解る方居ましたらお願いします。 参考情報 ・サービスでSQL Server(SQLEXPRESS)が起動していることを確認済み ・OSはVista HomePremiumを使用 ・別PCのVistaBusinessでは作成できました ・SQLEXPRESS SP2は当ててあります

  • phpからsqlserverへの接続

    $serverName = '.\\SQLEXPRESS'; $connectionInfo = array( 'UID' => 'sa', 'PWD' => 'ks78', 'Database' => 'Movies' ); $conn = sqlsrv_connect( $serverName, $connectionInfo ); if( $conn === false ){ echo "Cound not connect.\n"; die( print_r( sqlsrv_errors(), true)); } 上記スクリプトですと接続できるのですが、 下記のスクリプトではどうしても接続ができません。 エラーからサーバー名?と思いManagement studio のサーバー名 localhost\SQLEXPRESS に変更しても接続できませんでした。 お教え願います。 $DBSERVER = ".\\SQLEXPRESS"; //SQL Serverサーバー名 $DBUSER = "sa"; //ログインユーザー名 $DBPASSWORD = "ks78"; //パスワード $DBNAME = "sample"; //データベース名 //SQL Serverに接続 $con = mssql_connect($DBSERVER, $DBUSER, $DBPASSWORD); if ($con) { print "SQL Serverに接続しました!<BR><BR>"; } else { print "SQL Serverに接続できませんでした!<BR><BR>"; }

    • 締切済み
    • PHP
  • SqlServer2008について

    WinServer2008にインストールされたSQLServer2008にクライアントから、sqlcmdコマンドでログインするとリモート接続が許可されてないのかログインできません。 別のWin2000ServerのSQL2005にはログインできます。 SQL2005には、セキュリティ構成というツールで、リモート接続を許可することができます。 SQL2008には、これに該当するツールが見当たりません。 ManagementStudioでSQL2008に接続して、データベースのプロパティの 「接続」を見ると、リモート接続を有効にするチェックは入ってますが、これは、SQL2005にもあり、sqlcmdで接続しようとすることと 関係ないように思いました。 sqlcmdでクライアントからSQL2008に接続するために、リモート接続するには、どうしたらよいのでしょうか? win2008サーバー上で、sqlcmdコマンドを使えば接続できます。

  • 2008でバッチファイルからバックアップするには?

    お世話になっております。 SQL Server 2008 Expressで、DBのバックアップを定期的に取ろうとしているのですが、うまくいきません。 SQL Serverのタスク等ではなく、バッチファイルを作成し、 タイムスタンプを付けて保存したいと思っています。 例:「TESTDB_YYYYMMDD_HHMMSS.bak」 2005のときは、以下のファイルを用意し、 Backup.bat Backup.sql ---- Backup.bat 内容 ------------------------ sqlcmd -SMYPC\SQLEXPRESS -Usa -iC:\DBBackup\DBBackup.sql -P"" >> C:\DBBackup\backup.log (タイムスタンプを付ける処理) ---- Backup.sql 内容 ------------------------ BACKUP DATABASE [TESTDB] TO DISK = N'C:\DBBackup\TESTDB.bak' WITH NOFORMAT, NOINIT, NAME = N'TESTDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 同様の処理を2008上で行うと、特にエラーメッセージも出ないのですが、 バックアップファイルが出力されません。 (Management Studio Express上でSQLを流すとバックアップファイルが出力されます。) SQLCMDの仕様が変わった為かと思いますが、 解決策をご存知の方いらっしゃいましたら、宜しくお願い致します。

  • Recordsetの ID PWは?

    GWで暇なので WebからSQL Server2008 Expressをダウンロードしてインストールして試している所です。 インストールは無事終了して、SQL Sever Managementを使って 新しいデータベースやテーブルも作成できました。 元々あったAccessのテーブルをインポートもできました。 しかし、エクセルのVBAで Recodsetを試みようとしているところですが Sub ボタン1_Click() Set cnnSql = New ADODB.Connection With cnnSql .Provider = "SQLOLEDB" .Properties("Data Source").Value = "PC\SQLEXPRESS" 'サーバー名 .Properties("User ID").Value = "sa" 'ユーザー名 .Properties("Password").Value = "" 'パスワード '.Properties("Initial Catalog").Value = "master" 'サーバー上のデータベース名 .Open End With cnnSql.Close Set cnnSql = Nothing End Sub という簡単なコードで ユーザー "sa"にログインできませんでした のメッセージで 先に進めません。 SQL Server management のログイン sa のプロパティをみると SQLServer認証 ですが 15ケタのパスワードが ●●・・・●と出ています。 ●をすべて削除してOKでいても次に開くと元の通りなのですが これが原因かどうかわかりませんが VBA Recodesetを使って SQLServerのテーブルに接続して操作したいのです。 どこの設定を見ればよいのかご存知の方、教えてください。 PCは Windows7 Office2010です。