-
Notifications
You must be signed in to change notification settings - Fork 97
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change DB owner with ALTER AUTHORIZATION (#1954)
Implement ALTER AUTHORIZATION to change database ownership. Syntax: ALTER AUTHORIZATION ON DATABASE::<dbname> TO <login-name> It is a common requirement for the DBA to create a database to be owned by a login. Thus far in Babelfish this was possible only by (temporarily) making the target login a member of sysadmin role, which is undesirable. To change the database owner to a different login, all that is required is to update sys.babelfish_sysdatabases.owner to the new owner's login name. There are some restrictions such as that the new owner cannot be a user in the database already (guest user does not count). A non-sysadmin DB owner cannot grant ownership to anyone else, including to a sysadmin login. (however, it is OK to grant ownership to yourself although there seems little point in that). When the current DB owner has an active session in the database with the current DB set to that same database, and at the same time a different session change the database ownership, the now-previous owner retains access rights in the session as long as the database context remains unchanged; as soon as the database context is changed, the access rights from the DB ownership are lost: Babelfish behaves identically to T-SQL here. To implement this feature, statement type PLTSQL_STMT_CHANGE_DBOWNER was introduced rather than something more generic-looking like PLTSQL_STMT_ALTERAUTH: other cases of ALTER AUTHORIZATION may affect the ownership/permissions-related artefacts that are created by Babelfish, or require different catalog modifications; therefore, the DB ownership change is more of a one-off case. BABEL-2121: Babel does not support ALTER AUTHORIZATION syntax to change database owner Signed-off-by: Rob Verschoor <[email protected]>
- Loading branch information
1 parent
7c0e468
commit 1083c88
Showing
20 changed files
with
1,368 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.