タグ付けされた質問 「signature」

1
クロスデータベース証明書を使用する場合のトリガーの権限
私のデータベース(SQL Server 2008 R2)の特定のデータベースへのアクセスを制御するために、クロスデータベース証明書(Erland Sommarskogが説明)を使用しています。 私はデータベースBのテーブルを更新するデータベースAのストアドプロシージャを持っています。これは、これまで、db Aのさまざまなストアドプロシージャとdb Bのテーブルで常に機能していました。db Bのテーブルを更新しようとしていますが、テーブルにトリガーがあります。このトリガーは、db Bの別のテーブルに追加のデータを挿入しています。次のエラーが発生します。 メッセージ916、レベル14、状態1、プロシージャtable_trigger、行11サーバープリンシパル "sql \ login"は、現在のセキュリティコンテキストではデータベース "B"にアクセスできません。 証明書に関連付けられているデータベースBユーザーに、他のテーブルに挿入する挿入アクセス許可を付与しようとしましたが、エラーは解決しませんでした。トリガーを変更する以外にオプションはありWITH EXECUTE AS OWNERますか? 問題を再現するDDLは次のとおりです。 CREATE LOGIN [GuggTest] WITH PASSWORD=N'abcd', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF CREATE DATABASE A; CREATE DATABASE B; USE A; CREATE TABLE dbo.SPtoUpdate ( ID INT , ILoveFishing VARCHAR(255) ); INSERT INTO dbo.SPtoUpdate ( …

2
エラー:「1つ以上のエンティティがそれを使用して署名または暗号化されているため、証明書を削除できません。」
データベースから削除したい証明書があります。 コマンドを発行した場合 DROP CERTIFICATE <FooCert> エラーが出る The certificate cannot be dropped because one or more entities are either signed or encrypted using it Jason Strateによれば、証明書によって何が署名されているかを知ることができるはずです。 次のクエリは0行を返します。 SELECT OBJECT_SCHEMA_NAME(co.major_id) + '.' + OBJECT_NAME(co.major_id) FROM sys.certificates c INNER JOIN sys.crypt_properties co ON c.thumbprint = co.thumbprint WHERE co.crypt_type_desc = 'SIGNATURE BY CERTIFICATE' AND …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.