Either you can give the User sysadmin
rights
OR
provide alter
permission to the dbo
schema.
In order to create a procedure, a function, schema scoped objects etc.., you need at least ALTER
permission on the target schema. Here is the TSQL syntax,
grant alter on schema :: schema_name to user_name
The user should also have the permissions on the Notification Service , Queues.
To grant the permission to user ‘John’ on the Service
and queue
use:
GRANT SEND on service::SqlQueryNotificationService to John
GRAND RECEIVE on SqlQueryNotificationService_DefaultQueue to John
Also the user needs permission to subscribe to notification.( This is done already by you I guess) To do this use:
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO John
One last point so far i can guess to help is that in case you have setup SqlDependency
on a command, then make sure you execute it.Query subscriptions on the server happen only on command execution.
SqlDataReader reader = command.ExecuteReader();
This post may prove more helpful.