2018年12月27日木曜日

sqlserverで「変更の保存が許可されていません」とテーブルデザインが変更で きない時

event_note12月 27, 2018

こんにちは。
家でSQLServerを使うためにExpressをインストールしました。

適当にテーブルを作って、列名やテーブル名を変更しようとしたところ
「変更の保存が許可されていません…」とメッセージが!

そんなときの対処法について調べたので、わすれないように書いておきます。
2014でもおなじだったので、バージョンが違っても基本的には同じはず!

現象:テーブルデザインが変更できない

テーブルデザイン(列名)、テーブル名変更し保存ボタン(フロッピーの形の)を押すと以下のメッセージが表示されます。

ちなみに、「テキストファイルを保存」ボタンをおしてもこんなテキストが出力されるのであんまり意味ないです。

テーブルデザインの変更が保存できるようにする設定方法

1.ツール→オプションを選択する。

2.左のリストから「デザイナー」を選択し、右画面の「テーブルの再作成を必要とする変更を保存できないようにする」のチェックをはずす。

3.変更したテーブルを保存する。

これでOK!

変更したいときに一時的にチェックをはずして、あとで戻しておくのもいいですね。

例えば開発時には、チェックを外しておいて本番稼働ではチェックをつけておくと安心です。

2018年12月26日水曜日

VisualStudio(VS)でビルド・上書きでアクセスが拒否されて失敗する場合の解決 方法

event_note12月 26, 2018

こんにちは。
先日、お仕事でVisualStudio2017を使いました。

他のサーバで使っていたVBウェブアプリのソリューションフォルダを丸ごとコピーして、別サーバに貼り付けしたところ、ビルド失敗…。解決できたので忘れないようにメモしておこうと思います。
キャプチャとかないのでうろ覚えですが参考にしてみてください。

VSでビルド・上書きの時にアクセスが拒否される

ビルドの時に、ファイル書き込みができなかったのですが、フォルダにAuthenticated Usersがアクセス(変更)できるようにしたら解決しましたよ。詳細はこんな感じです。↓

アクセス拒否の現象

・ソリューション内のソースを編集し、ビルドしたが「アクセスが拒否されました」と何件もエラー(Warning?)が出力された。
結果、ビルド失敗。
・ソースファイルを修正し、保存ボタン(フロッピーの形の)を押したところ、「名前を付けて保存」のウィンドウが表示される。
名前を変えてはみたが、エラーメッセージが表示され保存ができなかった。

解決方法

ソリューションが保存されているフォルダにAuthenticated Usersがアクセス許可(変更)できるようにすることで無事、ビルドできるようになりました。
変更できる権限がないとだめです。

以下、設定手順です。

1.編集ボタンをクリック

2.追加をクリック

3.詳細設定クリック

4.検索をクリック。検索結果からAuthenticated Usersを選択してOKボタンを押す。

5.Authenticated Usersを選択し、アクセス許可「変更」にチェックを入れる。そしてOKを押して画面を閉じる。

Authenticated Usersでだめでもコピー元のアクセス権と同じようにフォルダのアクセス権を設定すると解決するかもしれないですね。

原因

ソリューションのフォルダを元サーバからコピーしたときに、Authenticated Usersのアクセス許可が消えており、
ビルドの時にファイルを新規作成したり上書きできずにエラーが出ていたみたいです。。

元サーバ→自分のPC→新しいサーバ と自分のPCを経由したのがいけなかったのかなぁ?
アクセス権の設定がうまく引き継がれなかったみたいです。
他のサーバへ直接コピーしたときはうまくいったような記憶があるのですが…。

ちなみに、Authenticated Usersについて調べましたがよくわかりませんでした。なんなの?

まとめ

ソリューションフォルダを別サーバにコピーしたときは、フォルダのアクセス権に気を付けましょう♪