ユーザー定義のデータ型を持つSQL Server 2005上で実行されているDBがあります。ユーザー定義のデータ型もモデルデータベースに実装されているので、私は一時テーブルを作成するときに同じユーザー定義のデータ型を使用できます。SQL Server 2005のユーザー定義データ型、tempdbおよびアクセス許可
CREATE TYPE [dbo].[ product_code] FROM [varchar](8) NULL
とモデルで正確に同じ:
CREATE TYPE [dbo].[ product_code] FROM [varchar](8) NULL
私は私のデータベースインスタンス上のセキュリティログインが持っている場合は検出されませんでしたAppDBで、私はこのデータ型が定義されている
例えば、 sysadminサーバーロールを使用すると、product_codeデータ型を使用してtempdbにテーブルを作成するストアドプロシージャを呼び出すのに問題はありませんが、アプリケーションセキュリティログインからsysadminを削除すると、ストアドプロシージャ呼び出しは失敗します。
ユーザー定義データ型を全体のvarcharシステムデータ型に置き換えると、同じストアドプロシージャ呼び出しが成功します。
セキュリティ上の理由から、アプリケーションセキュリティログインにsysadminサーバーロールを追加したくありません。ユーザー定義のデータ型を引き続き使用するにはどのようなオプションがありますか?これらのオプションはSQL Server 2008で変更されますか?
具体的には、公開ロールに付与されているものを超えるアクセス許可は必要ですか?すべてのストアドプロシージャの編集を必要とする回答は無応答とみなされます。
ユーザーにはどのようなアクセス許可がAppDBにありますか?例えばそのデータ型を持つ* local *テーブルを作成できますか? –
また、あなたはこのブログ記事が役に立つかもしれません。あなたのタイプに関するドキュメントは、エイリアスタイプを使ってそれを実施しようとするよりも、ずっと面倒ではありません。 http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/14/bad-habits-to-kick-using-alias-types.aspx –
この記事のリンクをありがとうございます - これを転送しました私たちのシステムアーキテクトにレビューを依頼します。私はdb_ddladminの固定ユーザーロールにユーザーを追加しました。問題は解決されました。これは正しいことですか?私はそれがユーザーをsysadminロールに追加するよりも優れていると推測しますが、私はこのことについてあまり知らないと認めます。 –