Allow SECURITYADMIN to deploy schemachange #105
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
From point 2 in this comment, we want to execute future grants within a versioned script.
We already have a database,
METADATA
, which we use for managing the change history of account-level objects. Since future grants are grants on privileges which don't yet exist, we need to create them with a role which has theMANAGE GRANTS
privilege (i.e.,SECURITYADMIN
).SECURITYADMIN
doesn't yet have privileges to theMETADATA.SCHEMACHANGE.CHANGE_HISTORY
table. That's what this PR accomplishes.While the object we are granting future privileges on are database and schema-level objects, rather than account-level objects, I still think it makes sense to track changes to their future grants in
METADATA
since its the future grants themselves which behave like account-level objects, requiring the account-level privilegeMANAGE GRANTS
to create.