Fixed database roles are defined at the database level and exist in each database. You cannot add, delete or modify fixed database roles. You can only add users as a member of a fixed database roles. There are nine fixed database roles:
The members of db_owner database role can perform any activity in the database.
The members of db_accessadmin database role can add or remove Windows NT groups, users or SQL Server users in the database.
The members of db_datareader database role can see any data from all user tables in the database.
The members of db_datawriter database role can add, change, or delete data from all user tables in the database.
The members of db_ddladmin database role can make any data definition language commands in the database.
The members of db_securityadmin database role can manage statement and object permissions in the database.
The members of db_backupoperator database role can back up the database.
The members of db_denydatareader database role can deny permission to select data in the database.
The members of db_denydatawriter database role can deny permission to change data in the database.
To add a security account as a member of an existing SQL Server database role in the current database, you can use sp_addrolemember system stored procedure.
This is the syntax:
sp_addrolemember [@rolename =] 'role', [@membername =] 'security_account'
where @rolename – is the name of the database role.
@membername – is the name of the security account.
Any member of a fixed database role can add other users to this role.
The benefits of using roles
Roles are a part of the tiered security model:
- Login security—Connecting to the server
- Database security—Getting access to the database
- Database objects—Getting access to individual database objects and data
First, the user must log in to the server by entering a password. Once connected to the server, access to the stored databases is determined by user accounts. After gaining access to an actual database, the user is restricted to the data he or she can view and modify.
The main benefit of roles is efficient management. Imagine a group of 1,000 users suddenly needing to view or modify new data. Using Windows security, you simply select an existing Windows group and assign it to a SQL Server role—instead of modifying 1,000 user accounts.
To clarify, Windows groups consist of users with access to the Windows network, but SQL Server roles belong strictly to SQL Server. You’re simply granting permissions to SQL Server data and objects to valid Windows users.
Server roles are maintained by the database administrator (DBA) and apply to the entire server, not an individual database file. The public role sets the basic default permissions for all users. Every user that’s added to SQL Server is automatically assigned to the public role—you don’t need to do anything. Database roles are applied to an individual database.
Predefined database roles
You may need to create your own, but you have access to several predefined database roles:
- db_owner: Members have full access.
- db_accessadmin: Members can manage Windows groups and SQL Server logins.
- db_datareader: Members can read all data.
- db_datawriter: Members can add, delete, or modify data in the tables.
- db_ddladmin: Members can run dynamic-link library (DLL) statements.
- db_securityadmin: Members can modify role membership and manage permissions.
- db_bckupoperator: Members can back up the database.
- db_denydatareader: Members can’t view data within the database.
- db_denydatawriter: Members can’t change or delete data in tables or views.
Fixed SQL Server roles:
The fixed server roles are applied serverwide, and there are several predefined server roles:
- SysAdmin: Any member can perform any action on the server.
- ServerAdmin: Any member can set configuration options on the server.
- SetupAdmin: Any member can manage linked servers and SQL Server startup options and tasks.
- Security Admin: Any member can manage server security.
- ProcessAdmin: Any member can kill processes running on SQL Server.
- DbCreator: Any member can create, alter, drop, and restore databases.
- DiskAdmin: Any member can manage SQL Server disk files.
- BulkAdmin: Any member can run the bulk insert command.