SQL Server 2005で実行されている、ユーザー定義のデータ型のDBがあります。ユーザー定義のデータ型もモデルデータベースに実装されているため、一時テーブルを作成するときに同じユーザー定義のデータ型を使用できます。
たとえば、AppDBでは次のデータ型を定義しています。
CREATE TYPE [dbo].[ product_code] FROM [varchar](8) NULL
そして、モデルでもまったく同じです。
CREATE TYPE [dbo].[ product_code] FROM [varchar](8) NULL
データベースインスタンスのセキュリティログインにsysadminサーバーの役割がある場合、ユーザーはproduct_codeデータ型を使用してtempdbにテーブルを作成するストアドプロシージャを問題なく呼び出すことができますが、アプリケーションのセキュリティログインからsysadminを削除すると、ストアドプロシージャの呼び出しは失敗します。
全体を通してユーザー定義のデータ型をvarcharシステムのデータ型に置き換えると、同じストアドプロシージャの呼び出しが成功します。
セキュリティ上の理由から、sysadminサーバーの役割をアプリケーションのセキュリティログインに追加したくありません。ユーザー定義のデータ型を引き続き使用する場合、どのようなオプションがありますか?これらのオプションはSQLServer2008で変更されますか?
具体的には、パブリックロールに付与されている権限以外にどのような権限が必要ですか?すべてのストアドプロシージャの編集が必要な回答は、応答しないと見なされます。