|To...||the user must have the...|
|create, alter, or drop a UDT||UDTTYPE is only granted at the database level. This privilege includes all the abilities of UDTUSAGE plus the ability to create, alter, and drop UDTs. Users can also create or drop cast, ordering, or transform properties.
Users with this privilege cannot, however, create methods or drop and replace existing methods.
|create, alter, or drop a UDM||UDTMETHOD. This privilege includes all the abilities of UDTTYPE plus ability to use, create, drop or alter any UDT and its methods without any restrictions.|
|use a UDT or UDM in a table or view, and run all associated methods||UDTUSAGE. You can grant this privilege at both the database and object level. It is not an automatic privilege and a user must be granted this privilege or acquire it through a role. A user granted UDTUSAGE WITH GRANT OPTION can grant it (optionally also with the WITH GRANT OPTION) to others.
UDTUSAGE allows users to run all SQL statements that reference existing UDTs and their existing methods. It does not permit creation of UDTs, altering the ordering, casting, or transform behavior of existing UDTs, or creating methods.
|create or alter a cast operation for a UDT||CREATE CAST and REPLACE CAST privileges.|