Search code examples
sql-serversql-server-2017

Login/User account can only execute stored procedures when set to sysadmin server role


I am using the built-in NT AUTHORITY\NETWORK SERVICE account through IIS (set as the ApplicationPool identity) to run stored procedures which provides data to the website. I have to use this account because it is the only account available to me at the moment.

  • I have made NT AUTHORITY\NETWORK SERVICE as a User on the database
    and gave it GRANT EXECUTE TO [NT AUTHORITY\NETWORK SERVICE] so it can execute whatever it wants.
  • Under User Mapping for the login, I have granted it all server roles except sysadmin.
  • Under Securables I have granted it Admin Bulk Operations, Connect Any Database, Connect SQL, View Any Database, View Server State.

Even with the above I cannot execute stored procedures in my database using that account. The ONLY way it can execute stored procedures is if I go to SQL Server Instance > Security > Logins and tick the sysadmin box under Server Roles.

What do I need to do to enable an account like NT AUTHORITY\NETWORK SERVICE to be able to select, insert, update, delete, execute etc all objects in any of my databases?

Update 1: Output from execute as login = 'NT AUTHORITY\NETWORK SERVICE'; select user,* from sys.fn_my_permissions(null, 'database'); revert:

NT AUTHORITY\NETWORK SERVICE    database        CREATE TABLE
NT AUTHORITY\NETWORK SERVICE    database        CREATE VIEW
NT AUTHORITY\NETWORK SERVICE    database        CREATE PROCEDURE
NT AUTHORITY\NETWORK SERVICE    database        CREATE FUNCTION
NT AUTHORITY\NETWORK SERVICE    database        CREATE RULE
NT AUTHORITY\NETWORK SERVICE    database        CREATE DEFAULT
NT AUTHORITY\NETWORK SERVICE    database        BACKUP DATABASE
NT AUTHORITY\NETWORK SERVICE    database        BACKUP LOG
NT AUTHORITY\NETWORK SERVICE    database        CREATE TYPE
NT AUTHORITY\NETWORK SERVICE    database        CREATE ASSEMBLY
NT AUTHORITY\NETWORK SERVICE    database        CREATE XML SCHEMA COLLECTION
NT AUTHORITY\NETWORK SERVICE    database        CREATE SCHEMA
NT AUTHORITY\NETWORK SERVICE    database        CREATE SYNONYM
NT AUTHORITY\NETWORK SERVICE    database        CREATE AGGREGATE
NT AUTHORITY\NETWORK SERVICE    database        CREATE ROLE
NT AUTHORITY\NETWORK SERVICE    database        CREATE MESSAGE TYPE
NT AUTHORITY\NETWORK SERVICE    database        CREATE SERVICE
NT AUTHORITY\NETWORK SERVICE    database        CREATE CONTRACT
NT AUTHORITY\NETWORK SERVICE    database        CREATE REMOTE SERVICE BINDING
NT AUTHORITY\NETWORK SERVICE    database        CREATE ROUTE
NT AUTHORITY\NETWORK SERVICE    database        CREATE QUEUE
NT AUTHORITY\NETWORK SERVICE    database        CREATE SYMMETRIC KEY
NT AUTHORITY\NETWORK SERVICE    database        CREATE ASYMMETRIC KEY
NT AUTHORITY\NETWORK SERVICE    database        CREATE EXTERNAL LIBRARY
NT AUTHORITY\NETWORK SERVICE    database        CREATE FULLTEXT CATALOG
NT AUTHORITY\NETWORK SERVICE    database        CREATE CERTIFICATE
NT AUTHORITY\NETWORK SERVICE    database        CREATE DATABASE DDL EVENT NOTIFICATION
NT AUTHORITY\NETWORK SERVICE    database        CONNECT
NT AUTHORITY\NETWORK SERVICE    database        CONNECT REPLICATION
NT AUTHORITY\NETWORK SERVICE    database        CHECKPOINT
NT AUTHORITY\NETWORK SERVICE    database        SUBSCRIBE QUERY NOTIFICATIONS
NT AUTHORITY\NETWORK SERVICE    database        AUTHENTICATE
NT AUTHORITY\NETWORK SERVICE    database        SHOWPLAN
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY USER
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY ROLE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY APPLICATION ROLE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY COLUMN ENCRYPTION KEY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY COLUMN MASTER KEY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY SCHEMA
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY ASSEMBLY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATABASE SCOPED CONFIGURATION
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATASPACE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY EXTERNAL DATA SOURCE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY EXTERNAL FILE FORMAT
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY EXTERNAL LIBRARY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY MESSAGE TYPE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY CONTRACT
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY SERVICE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY REMOTE SERVICE BINDING
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY ROUTE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY FULLTEXT CATALOG
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY SYMMETRIC KEY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY ASYMMETRIC KEY
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY CERTIFICATE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY SECURITY POLICY
NT AUTHORITY\NETWORK SERVICE    database        SELECT
NT AUTHORITY\NETWORK SERVICE    database        INSERT
NT AUTHORITY\NETWORK SERVICE    database        UPDATE
NT AUTHORITY\NETWORK SERVICE    database        DELETE
NT AUTHORITY\NETWORK SERVICE    database        REFERENCES
NT AUTHORITY\NETWORK SERVICE    database        EXECUTE
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATABASE DDL TRIGGER
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATABASE EVENT NOTIFICATION
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATABASE AUDIT
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY DATABASE EVENT SESSION
NT AUTHORITY\NETWORK SERVICE    database        KILL DATABASE CONNECTION
NT AUTHORITY\NETWORK SERVICE    database        VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
NT AUTHORITY\NETWORK SERVICE    database        VIEW ANY COLUMN MASTER KEY DEFINITION
NT AUTHORITY\NETWORK SERVICE    database        VIEW DATABASE STATE
NT AUTHORITY\NETWORK SERVICE    database        VIEW DEFINITION
NT AUTHORITY\NETWORK SERVICE    database        TAKE OWNERSHIP
NT AUTHORITY\NETWORK SERVICE    database        ALTER
NT AUTHORITY\NETWORK SERVICE    database        ALTER ANY MASK
NT AUTHORITY\NETWORK SERVICE    database        UNMASK
NT AUTHORITY\NETWORK SERVICE    database        EXECUTE ANY EXTERNAL SCRIPT
NT AUTHORITY\NETWORK SERVICE    database        ADMINISTER DATABASE BULK OPERATIONS
NT AUTHORITY\NETWORK SERVICE    database        CONTROL

Solution

  • How could I just give this user select, update, insert, delete, and execute on all current and future databases on the server?

    You should add your user to database roles db_datareader, db_datawriter and grant it EXECUTE in every existing database.

    For future databases you can map it into model database and do the above actions. This will add this user as db_datareader and db_datawriter with EXECUTE on all database for any newly created database except for restored databases.