-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
backupccl: schemas restored as part of a database restore do not get adequate privileges #95456
Labels
branch-master
Failures and bugs on the master branch.
branch-release-22.1
Used to mark GA and release blockers, technical advisories, and bugs for 22.1
branch-release-22.2
Used to mark GA and release blockers, technical advisories, and bugs for 22.2
C-bug
Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
T-disaster-recovery
Comments
adityamaru
added
C-bug
Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
branch-master
Failures and bugs on the master branch.
branch-release-22.1
Used to mark GA and release blockers, technical advisories, and bugs for 22.1
branch-release-22.2
Used to mark GA and release blockers, technical advisories, and bugs for 22.2
labels
Jan 18, 2023
blathers-crl
bot
added
T-sql-foundations
SQL Foundations Team (formerly SQL Schema + SQL Sessions)
T-disaster-recovery
labels
Jan 18, 2023
cc @cockroachdb/disaster-recovery |
craig bot
pushed a commit
that referenced
this issue
Jan 19, 2023
95461: ui: remove reset sql stats for non-admin r=maryliag a=maryliag Continuation from #95303 The previous PR missed the reset on the Transactions tab. This PR removes the reset sql stats for non-admin users. Fixes #95213 Release note (ui change): Remove `reset sql stats` from Transactions page for non-admins. 95466: ingesting: fixup privileges granted during database restore r=rafiss a=adityamaru Previously, all schemas and tables that were ingested as part of a database restore would "inherit" the privileges of the database. The database would be granted `CONNECT` for the `public` role and `ALL` to `admin` and `root`, and so all ingested schemas would have `ALL` for `admin` and `root`. Since 21.2 we have moved away from tables/schemas inheriting privileges from the parent database and so this logic is stale and partly incorrect. It is incorrect because the restored `public` schema does not have `CREATE` and `USAGE` granted to the `public` role. These privileges are always granted to `public` schemas of a database and so there is a discrepancy in restore's behaviour. This change simplifies the logic to grant schemas and tables their default set of privileges if ingested via a database restore. It leaves the logic for cluster and table restores unchanged. Release note (bug fix): fixes a bug where a database restore would not grant `CREATE` and `USAGE` on the public schema to the public role Fixes: #95456 95467: schemachanger: a bunch of small fixes r=postamar a=postamar Informs #88294. Release note: None 95504: schemachangerccl: rename generated tests r=postamar a=postamar This commit adds an underscore in the generated tests' name where there previously was one missing. Informs #88294. Release note: None 95512: kvserver: fix flaky TestLearnerReplicateQueueRace test r=tbg a=aliher1911 Test was not expecting raft snapshots and injected failure at wrong moments. Fixes #94993 Release note: None Co-authored-by: maryliag <[email protected]> Co-authored-by: adityamaru <[email protected]> Co-authored-by: Marius Posta <[email protected]> Co-authored-by: Oleg Afanasyev <[email protected]>
adityamaru
added a commit
to adityamaru/cockroach
that referenced
this issue
Jan 19, 2023
Previously, all schemas and tables that were ingested as part of a database restore would "inherit" the privileges of the database. The database would be granted `CONNECT` for the `public` role and `ALL` to `admin` and `root`, and so all ingested schemas would have `ALL` for `admin` and `root`. Since 21.2 we have moved away from tables/schemas inheriting privileges from the parent database and so this logic is stale and partly incorrect. It is incorrect because the restored `public` schema does not have `CREATE` and `USAGE` granted to the `public` role. These privileges are always granted to `public` schemas of a database and so there is a discrepancy in restore's behaviour. This change simplifies the logic to grant schemas and tables their default set of privileges if ingested via a database restore. It leaves the logic for cluster and table restores unchanged. Release note (bug fix): fixes a bug where a database restore would not grant `CREATE` and `USAGE` on the public schema to the public role Fixes: cockroachdb#95456
adityamaru
added a commit
to adityamaru/cockroach
that referenced
this issue
Jan 19, 2023
Previously, all schemas and tables that were ingested as part of a database restore would "inherit" the privileges of the database. The database would be granted `CONNECT` for the `public` role and `ALL` to `admin` and `root`, and so all ingested schemas would have `ALL` for `admin` and `root`. Since 21.2 we have moved away from tables/schemas inheriting privileges from the parent database and so this logic is stale and partly incorrect. It is incorrect because the restored `public` schema does not have `CREATE` and `USAGE` granted to the `public` role. These privileges are always granted to `public` schemas of a database and so there is a discrepancy in restore's behaviour. This change simplifies the logic to grant schemas and tables their default set of privileges if ingested via a database restore. It leaves the logic for cluster and table restores unchanged. Release note (bug fix): fixes a bug where a database restore would not grant `CREATE` and `USAGE` on the public schema to the public role Fixes: cockroachdb#95456
exalate-issue-sync
bot
added
T-disaster-recovery
and removed
T-sql-foundations
SQL Foundations Team (formerly SQL Schema + SQL Sessions)
labels
Jan 26, 2023
cc @cockroachdb/disaster-recovery |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
branch-master
Failures and bugs on the master branch.
branch-release-22.1
Used to mark GA and release blockers, technical advisories, and bugs for 22.1
branch-release-22.2
Used to mark GA and release blockers, technical advisories, and bugs for 22.2
C-bug
Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
T-disaster-recovery
As part of a database restore, we also restore the backed-up schemas. In a DB restore, before we publish the database descriptor into the restoring cluster we give it the base default privileges that include
CONNECT
topublic
, andALL
toadmin
androot
. Schemas in this database then "inherit"ALL
toadmin
androot
before they are published in the restoring cluster.This behavior is different from if a user creates a new database in the cluster which results in the following privileges:
A database restore should be granting
public
theCREATE
andUSAGE
privileges for thepublic
schema, in addition toALL
forroot
andadmin
. All other user defined schemas will only getALL
forroot
andadmin
.Jira issue: CRDB-23526
The text was updated successfully, but these errors were encountered: