Monday, July 20, 2009

Why GRANT EXECUTE ON SCHEMEA?

GRANT EXECUTE ON SCHEMEA::dbo TO ASPNET

By default schema is owned by dbo (any member of the sysadmin fixed sever role), which is different from db_owner (fixed database role).

If you don't specify schema on the table when you create it, the schema will be created under dbo privileges. The schema of the default LocalSqlServer database ASPNETDB is usually under dbo. Most of time, you need to run GRANT EXECUTE ON SCHEMEA statement.

What this statement does is to grant ASPNET

  • to execute stored procedures in the dbo schema.

If you change your mind later after you have granted the EXECUTE permission, you can always use REVOKE to remove the previous granted (or denied) permission, e.g.,

REVOKE EXECUTE ON SCHEMEA::dbo TO ASPNET

You can also use DENY statement to prevent someone from having certain permissions.