There is a great article on security here
On database-level permission to change any object in db is db_owner but securityadmin let you grant db_owner permission to any db.
Members of the sysadmin fixed server role can perform any activity in the server.
Members of the serveradmin fixed server role can change server-wide configuration options and shut down the server.
Members of the securityadmin fixed server role manage logins and their properties. They can GRANT, DENY, and REVOKE server-level permissions. They can also GRANT, DENY, and REVOKE database-level permissions if they have access to a database. Additionally, they can reset passwords for SQL Server logins.
The ability to grant access to the Database Engine and to configure user permissions allows the security admin to assign most server permissions. The securityadmin role should be treated as equivalent to the sysadmin role.
Members of the processadmin fixed server role can end processes that are running in an instance of SQL Server.
Members of the setupadmin fixed server role can add and remove linked servers.
Members of the bulkadmin fixed server role can run the BULK INSERT statement.
The diskadmin fixed server role is used for managing disk files.
Members of the dbcreator fixed server role can create, alter, drop, and restore any database.
Every SQL Server login belongs to the public server role. When a server principal has not been granted or denied specific permissions on a securable object, the user inherits the permissions granted to public on that object. Only assign public permissions on any object when you want the object to be available to all users.