
こんにちは。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlにおけるホストのパーセン...
-
メンテナンスプランについて
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
あるDBから別のDBのテーブルをs...
-
PL/SQLをWindowsのBATファイル...
-
同じSQL文で極端に検索が遅くな...
-
バッチでAccessのmdbファイルを...
-
どの程度のデータベースなら、c...
-
人口の都道府県別の割合を求め...
-
作成したレコードセットのCSV出...
-
漢字や平仮名の文字をSQLで実行...
-
badファイルの内容を知る方法
-
DBファイルの中身を直接見れな...
-
【初心者です】SQLPLUSでのバッ...
-
comment on columnについてわか...
-
mySQLのデータベースにhtmlのコ...
-
mysqlデータベース内のuserテー...
-
SQL*Loaderで桁数チェック
-
Access2010でアクセス制限をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlにおけるホストのパーセン...
-
メンテナンスプランについて
-
ACCESSデータベースの権限
-
MySQLでアクセス権やパスワード...
-
PHPMyAdminでroot権限を誤って...
-
MySQLにログインできなくて困っ...
-
Access2002のセキュリティ(権...
-
MySQLで新規DB作成時、エラーが...
-
データベースユーザーを作成し...
-
ASP.NETからのデータベースの作成
-
ODBC登録の権限について
-
ユーザー名にアンダーバーを含...
-
phpmyadminでの特権が表示方法
-
Mysqlアップデートでワードプレ...
-
MYSQL CREATE DATABASE 権限
-
ACCESSからリンクでのレコード...
-
apacheとnamazu使用時にpermiss...
-
FILE権限があるはずなのにSQLフ...
-
ワークフロー承認システムを作...
-
mysql使用中エラー1044が出...
おすすめ情報