Grant permissions to system objects, database objects.
Syntax
GRANT SELECT ON [sys.]system_object FROM principal
GRANT EXECUTE ON [sys.]system_object FROM principal
GRANT object_permission [,...n ]
ON [ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO database_principal[,...n ]
[WITH GRANT OPTION]
[AS database_principal ]
Key
permission ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
The ALL permission is deprecated and maintained only for compatibility.
database_principal, one of:
Database_user
Database_role
Application_role
Database_user_mapped_to_Windows_User
Database_user_mapped_to_Windows_Group
Database_user_mapped_to_certificate
Database_user_mapped_to_asymmetric_key
Database_user_with_no_login
Objects
ASSEMBLY :: assembly
ASYMMETRIC KEY :: asymmetric_key
CERTIFICATE :: certificate
CONTRACT :: contract
ENDPOINT :: endpoint
FULLTEXT CATALOG :: full-text_catalog
LOGIN :: SQL_Server_login
MESSAGE TYPE :: message_type
[OBJECT ::][schema].object [(column [,...n ])]
REMOTE SERVICE BINDING :: remote_binding
ROUTE :: route
SCHEMA :: schema
SERVICE :: service
SYMMETRIC KEY :: symmetric_key
TYPE :: [schema].type
XML SCHEMA COLLECTION :: [schema.] XML_schema_collection
system_object Objects such as stored procedures, functions and views.
WITH GRANT Also allow the principal to grant this permission to other principals.
object_permission
ALTER/CONTROL/RECEIVE/REFERENCES/IMPERSONATE/
SELECT/UPDATE/INSERT/DELETE/
EXECUTE/TAKE OWNERSHIP/VIEW DEFINITION
ALL - Against an object, GRANT ALL will grant all permissions applicable to the object.
USE MyDb; GRANT EXECUTE ON sys.MyStoredproc TO public; GO GRANT SELECT ON MyTable.MyColumn TO MyUser; GO
“I don’t know if I believe in role models. We're all so different; we’re all individuals. In the long run, that's what matters” ~ Wilson Cruz
REVOKE Object permissions.
DENY Object permissions.
GRANT Schema/ Search/ Server/ Server Principal/ Symmetric Key/ System Object/ Type permissions.
GRANT User/Role permissions.