serverapps:db:sqlserver
文書の過去の版を表示しています。
目次
SQLServer
バックアップ セットは、既存のデータベース ‘%ls’ 以外のデータベースのバックアップを保持しています
バックアップからリストアするときに表示される
webなどでは
- 「既存のデータベースを上書きする」チェックを入れる
- mdf,ldfファイルのパスが間違ってる
などがあるが、それでも解消できなかった場合、以下のSQLでリストアできた
RESTORE DATABASE kingdb -- 復元対象DB FROM DISK = 'D:/DATA/kingdb.bak' WITH REPLACE, MOVE 'test1' TO 'D:/DATA/test1.mdf', -- 復元対象DB名を変更する可能性がある MOVE 'test1_log' TO 'D:/DATA/test1_log.ldf' -- 復元対象DB名を変更する可能性がある
SQL Server のデータベースユーザーを削除しようとしたら「スキーマを所有しているので削除できません」
これは、いずれかのスキーマを所有しているため削除できませんという意味です。
- そのユーザでテーブルを作成した
- そのユーザでViewを作成した
- 権限スキーマの所有者になってる
等の原因が考えられます。解決法としては以下のようなものになります
-- いったん、ユーザーと、そのユーザー名と同名のスキーマを明示的に関連付け、 ALTER USER ユーザ名 WITH DEFAULT_SCHEMA = ユーザ名 -- そのスキーマを明示的に削除してから、 DROP SCHEMA ユーザ名 -- ユーザーを削除。 DROP USER ユーザ名 GO
- データベース→スキーマ→db_owner1)の所有者を確認
- 該当ユーザが所有者にになっていたら、ほかの所有者に変更
- たぶんこれで削除できるはず
原因
SQL Server 2012以前では、SQL Serverのデータベースエンジンのインスタンス間でデータベースを移行または復旧すると、データベースユーザーに関連付けられたサーバログインは、移行先/復旧先のインスタンスに自動でコピーされない。
そのため、孤立したユーザーが生まれ、移行直後のデータベースは機能しない。
1)
等
serverapps/db/sqlserver.1581044234.txt.gz · 最終更新: 2020/02/07 02:57 by hayashi