2009-05-16 13 views
0

私はASP.NETとSQL Server 2005を使用して小さなインターネットアプリケーションを開発します。私のデータベースには常にASP.NET Webサービスなどのアプリケーション。SQL Serverのログイン/所有者/スキーマ/ロール/プリンシパルなどを簡略化

アプリケーションを開発し、開発用コンピュータ(SQLExpress 2008)とホスト型サーバー(SQL Server 2005)の間でデータベースを前後に移動すると、必ず所有者/ロール/スキーマ/ログインなどの邪魔をすることになりますそれは切り抜かれ、データベースのさまざまな部分を管理するように見えます。

私はSQL Serverに関して危険であるとしか知りませんが、データベースを設計したいと思っていますが、dbを変更してさまざまなアクセス権エラーが発生することがあります(たとえば、 a db)。

SQL Server Management Studioには「こんにちは、私はこの愚かなデータベースを使用する唯一の人なので、私はそれをやりましょうか?」と伝える方法はありますか?

これらのすべての部分を 'dbo'などに設定するコマンドが好きですか?

答えて

1

私はあなたがWindowsを使用していると仮定しています。 Windows認証でSQLに接続し、アカウントのSysadmin権限を与えてください。これで、作成するすべてのテーブル(tablenameの作成、ビューのビュー名の作成)には自動的にdboが所有者として設定されます。

+0

をdbo.myprocname。しかし、私が使用しているDBの中には、すでにホストされているサーバーにアップロードされ、ホストされているサーバー上のSQLログインで変更された古いアプリケーションから取得したものもあります。次に、パブリッシングウィザードを使用して、自分のSQLExpressインスタンスにコピーして変更します。 (またはこれのバリエーション) –

+0

sp_changeobjectownerを使用して、すべてのオブジェクトをdboにリセットします。 – Bill

0

問題の要点は、データベース自体を前後に移動することです。データベースは、ユーザーのマッピングへのログインや、暗号化キー、msdbプロシージャの使用法、メンテナンス計画などの他の設定によって、ホストSQLインスタンスに密接に結合されます。 Exclusively SQL Authenticationを使用して影響を最小限に抑えることはできますが、それでも問題は完全に解消されません。実際のソリューションは、デプロイメントスクリプトを用意し、前回dbをテストしていたT-SQLスクリプトを実行して、運用データベースに変更を適用する必要があります。dbを前後に動かすのではなく、 。

+0

まあ、私は最初からdbを前後に動かすつもりはありません。しかし、私が素早いプロジェクトをやっていて、別のプロジェクトからdb構造体の60%を取り除くことができたら、dbをプルダウンしてオフラインで再生したいと思います。スクラッチ。 –

1

不幸にも、あなたの質問には簡単な回答がいくつかありますが、SQL Serverのスキルに投資する必要があるため、おそらくそれは気に入らないでしょう。

最初に見なければならないツールは、Visual Studio 2008 Database Developer Editionです。このバージョンには、スキーマやユーザーを管理するために探している管理ツールがあります。これはVisual Studio 2008開発版に含まれていると思います。

2番目の方法は、SQL Serverの管理を取り込み、DDLスクリプトの書き込みでcomfertableを取得する方法です。 。目標は、開発環境からテスト、最終的にはプロダクションまで、予期せず変更をSQL Serverに展開できるようになることです。

0

私はすべてのオブジェクトを作成して、それらをdboとして作成するように指定します。私は手順を

を作成しますPROCを作成する

はい、私は、Windows(Vista Ultimateの)を使用していますとのsysadmin権限でWindowsの認証経由でログインしてい

関連する問題