云服务器内容精选

  • 如何给指定用户赋予某个SCHEMA的权限? 给某个用户授权某个SCHEMA的权限,包括三个场景(本章节针对SCHEMA层级权限,仅演示授权查询权限,如果需要其他权限,可以参考如何给指定用户赋予某张表的权限?): SCHEMA下当前某张表权限。 SCHEMA下当前所有表的权限。 SCHEMA下未来创建的表的权限。 如图1所示,假设有两个用户jim和mike,对应的同名SCHEMA是jim和mike,用户mike需要访问SCHEMA jim的表(包括当前的某张表、所有表、未来创建的表)。 图1 用户mike访问SCHEMA jim下的表 打开窗口1(即dbadmin连接会话窗口,后续不再提示),使用系统管理员dbadmin连接DWS数据库,创建用户jim和mike(系统默认会创建jim和mike的同名SCHEMA)。 1 2 CREATE USER jim PASSWORD '{password}'; CREATE USER mike PASSWORD '{password}'; 在SCHEMA jim下创建表jim.name和jim.address。 1 2 CREATE TABLE jim.name (c1 int, c2 int); CREATE TABLE jim.address (c1 int, c2 int); 给用户mike赋予SCHEMA jim的访问权限。 1 GRANT USAGE ON SCHEMA jim TO mike; (某张表权限)给用户mike赋予SCHEMA jim下某张表jim.name的查询权限。 1 GRANT SELECT ON jim.name TO mike; 打开窗口2(即用户mike连接会话窗口,后续不再提示),使用用户mike连接DWS数据库,验证mike可以查询jim.name表,但是不能查询jim.address表。 1 2 SELECT * FROM jim.name; SELECT * FROM jim.address; (所有表权限)切回窗口1,使用dbadmin给用户mike赋予SCHEMA jim下所有表的查询权限。 1 GRANT SELECT ON ALL TABLES IN SCHEMA jim TO mike; 切回窗口2,再次验证mike可以查询所有表。 1 2 SELECT * FROM jim.name; SELECT * FROM jim.address; 切回窗口1,创建一张新的表jim.employ。 1 CREATE TABLE jim.employ (c1 int, c2 int); 切回窗口2,验证发现用户mike没有jim.employ的查询权限,说明mike虽然有SCHEMA jim下所有表的访问权限,但是对于赋权后新创建的表还是没有访问权限(即mike对SCHEMA jim未来的表权限是没有的)。 1 SELECT * FROM jim.employ; (未来表权限)切回窗口1,给用户mike赋予SCHAMA jim未来创建的表的访问权限,并创建一张新的表jim.hobby。 ALTER DEFAULT PRIVILEGES 用来授予将来要创建的对象的权限。 1 2 ALTER DEFAULT PRIVILEGES FOR ROLE jim IN SCHEMA jim GRANT SELECT ON TABLES TO mike; CREATE TABLE jim.hobby (c1 int, c2 int); 切回窗口2,验证发现用户mike可以访问jim.hobby。但是对于之前的jim.employ还是没有访问权限(以上ALTER DEFAULT PRIVILEGES语句的授权范围只是未来创建的表,对于已经创建的表,还是要使用GRANT 单张表重新授权),此时需要参考4重新授权jim.employ即可。 1 SELECT * FROM jim.hobby; 父主题: 账户、密码、权限
  • USER/ROLE 用户或角色是数据库服务器(集群)全局范围内的权限控制系统,是集群业务的所有者和执行者,用于各种集群范围内所有的对象权限管理。因此角色不特定于某个单独的数据库,但角色登录集群的时候必须要显式指定登录的用户名,以保证当前连接执行的操作者的透明性。同时数据库也会通过权限管理限定用户的访问和操作权限。 用户是权限的最终体现者,所有的权限管理最终都体现在用户对数据库对象的操作权限是否被允许。
  • 权限管理 GaussDB(DWS)中的权限管理分为三种场景: 系统权限 系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。 系统权限一般通过CREATE/ALTER ROLE语法来指定。其中,SYSADMIN权限可以通过GRANT/REVOKE ALL PRIVILEGE授予或撤销。但系统权限无法通过ROLE和USER的权限被继承,也无法授予PUBLIC。 用户权限 将一个角色或用户的权限授予一个或多个其他角色或用户。在这种情况下,每个角色或用户都可视为拥有一个或多个数据库权限的集合。 当声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户,以及撤销所有由该角色或用户继承到的权限。当授权的角色或用户发生变更或被撤销时,所有继承该角色或用户权限的用户拥有的权限都会随之发生变更。 数据库系统管理员可以给任何角色或用户授予/撤销任何权限。拥有CREATEROLE权限的角色可以赋予或者撤销任何非系统管理员角色的权限。 数据对象权限 将数据库对象(表和视图、指定字段、数据库、函数、模式等)的相关权限授予特定角色或用户。GRANT命令将数据库对象的特定权限授予一个或多个角色。这些权限会追加到已有的权限上。