こんにちは。
SQL SERVER 2005 ExpressとIIS5.0とASP.NET2.0+C#で使っています。
一台のサーバーマシンに、SQL SERVER 2005 ExpressとIIS5.0をインストールした状態なのですが、Webページ上のC#のプログラムよりデータベースを作成しようとすると、
CREATE DATABASE 権限がデータベース 'master' で拒否されました。
と、メッセージが出ます。
要するに権限がないというのはわかるのですが、このようにWebからログインしてきたユーザーに権限を付加することはできるのでしょうか?
あるいは、接続文字列かなんかで権限のあるユーザーでログインする、といったことが可能なものでしょうか?
現在は以下のようにして接続、作成を行おうとしています。
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=.\\SQLEXPRESS;Integrated security=SSPI";
String strDatabase = "CREATE DATABASE newdatabase";
SqlCommand cmdDatabase = new SqlCommand(strDatabase, conn);
conn.Open();
cmdDatabase.ExecuteNonQuery();
conn.Close();
エラーの内容から、SQL SERVERそのものへのアクセスは成功しているように思えます。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
Enterprise ManagerはSQL Server2000等に付属していた管理ツールですが、SQL Server 2005では廃止され、Management Studioというものになっています。
これはSQL Server Express with Advanced Servicesにも含まれるので、無償で利用可能です。まずこれをインストールしておいたほうが後々管理しやすくなるはずです。http://www.microsoft.com/downloads/details.aspx? …
Management Studioで該当のサーバに接続し、セキュリティ->ログインにユーザーASPNETを追加、その際サーバーロールを設定する項目があるので、そこでdbcreatorにチェックを入れておけばASP.NETでもCREATE DATABASEが使用できるようになると思います。
参考URL:http://www.microsoft.com/downloads/details.aspx? …
こんなツールがあったのですね。
SQL Server Express with Advanced Servicesをインストールして、Management Studioから設定することができました。
大変ありがとうございました。
No.3
- 回答日時:
失礼しました。
データベースを動的に作成したいのでしたね(汗)以下のサイトが参考になるかもしれません。英語のサイトですが。
ただ、SQLServer2005で使えるってことのようで、ExpressEditionでも使えるのかは不明です。
http://www.codeproject.com/KB/aspnet/Create_Data …
SQLDMOコンポーネントというものですね。
いろいろとツールを作る際には非常に便利そうです。
今回は#4さんの方法で対応できたのですが、今後必要となることもあるかもしれません。
ありがとうございました。
No.2
- 回答日時:
以下のリンク先を参考になさってはどうでしょうか。
現在は既存のデータベースにテーブルを作成しようとして、権限がないですよと蹴られているのだとおもうので、リンク先の方法で新しいデータベースを作成してそれにテーブルを作成するようにすれば権限が付与されるのかもしれません。
リンク先はASP.NETから使用するときの記事なのでうまくいくかもしれません。
http://www.atmarkit.co.jp/fdotnet/vs2005db/vs200 …
No.1
- 回答日時:
ちょっと自分の知識も曖昧なのですが、IIS5.0のASP.NETでは、リソースにアクセスする時にはASPNETというアカウントを使用して動くはずだと思いました。
(IIS6.0ならNT AUTHORITY/NETWORK SERVICEだったかな)ですので、SQLServerの認証がwindows認証で設定してあるようですので、ASPNETのアカウントでMasterのデータベースにアクセスできるように権限をつけてあげればよいはずです。
CREATE文なので"Create table"の権限を与えれば動きます。もちろんそのほかのこともしたいなら、それに対する権限を与えてください。
http://www.microsoft.com/japan/msdn/enterprise/p …
この回答への補足
お返事遅くなりまして申し訳ありません。情報ありがとうございます。
リンク先も見てみたのですが、当方の環境がExpressだからでしょうか、SQL Server Enterprise Managerなるものが存在しませんでした。他になにか設定する方法があればよいのですが・・。
とりあえず、コントロールパネルの「ユーザーとパスワード」より、ユーザーASPNETのグループをSQLServer2005MSSQLUser$XXXXX$SQLEXPRESSに変更して使用しておりますが、これでよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- Ruby Ruby on Railsでサーバーを立ち上げるには 1 2022/08/28 16:16
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlにおけるホストのパーセン...
-
行ごとにアクセス権限
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
あるDBから別のDBのテーブルをs...
-
sql*loader 数値のロード
-
数字で「そ」と「り」
-
create databaseがうまくいきま...
-
mySQLのデータベースにhtmlのコ...
-
Mysqlのデータベースのリンク
-
htmlフォームから受け取ったフ...
-
SQLServer2005 セカンダリファ...
-
SQLServerのselect文でデータ数...
-
【初心者です】SQLPLUSでのバッ...
-
Access2010でアクセス制限をしたい
-
MySQLへの特殊文字の挿入について
-
phpMyAdminのSQL文実行エラー
-
logwatchのhttpdの部分について
-
htmlタグを含んだ文字のデータ...
-
LinuxでFatal errorが出てしま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlにおけるホストのパーセン...
-
ERROR 1044
-
メンテナンスプランについて
-
MySQLのエラーメッセージ(エラ...
-
ACCESSからリンクでのレコード...
-
MySQLにログインできなくて困っ...
-
ASP.NETからのデータベースの作成
-
ODBC登録の権限について
-
MySQL 192.168.0.1の端末から 1...
-
phpmyadminでの特権が表示方法
-
PHPでMySQLのデーター...
-
レンタルサーバーでトリガーを...
-
ユーザー名にアンダーバーを含...
-
行ごとにアクセス権限
-
MySQLで新規DB作成時、エラーが...
-
NortonInternetSecurity2007で...
-
ワークフロー承認システムを作...
-
mysql使用中エラー1044が出...
-
XAMPPのSQLの「エラー#109」とは
-
データベースファイル(.db)を開...
おすすめ情報