人大金仓数据库kingbase一个实例下有多个用户,用户与库、模式、表没有必然的联系,需要人为的建立起联系。就是说在创建库、模式、表的时候可以指定用户(属主),如果没有指定,库、模式、表的属主是那个用户创建的,属主就是那个用户。
一个库下面可以有多个模式,一个模式下有多个表。库、模式、表的属主是各自独立的,创建库、模式、表的时候没有指定属主就是创建者为属主。
从上面可以看出,我们在创建数据库或者模式时,建议先创建用户,再创建数据库和模式就可以指定为那个用户(属主)了或者用建立的用户登录数据库创建库和模式。
对于普通用户(管理员用户或者具有管理员权限的用户另当别论)、库、模式、表的属主如下:
库的属主,目前的版本是不影响(控制)用户访问,库的属主可以删除库。
模式的属主,相等于谁(属主)可以控制模式被哪些用户访问。访问模式下的表,必须先具有访问模式的权限,模式属主可以删除模式。
表的属主,决定谁可以访问表以及怎么操作,对表授予其他用户权限的时候,建议用表的属主用户去执行授权。
修改库的属主
将数据库db1的属主修改为用户u1
alter database db1 owner to u1;
修改模式的属主
将模式u2的属主修改为用户u3
alter schema u2 owner to u3;
修改表的属主
将模式u2下的表t2的属主修改为用户u3
alter table u2.t2 owner to u3;
对于需要修改所有表的属主可以从sys_class视图查询表名,然后拼接语句为alter table 模式名.表名 owner to 用户; 进行修改。
对于新版本的数据库,可以用对应的用户 使用迁移工具迁移到新的库的模式下(相当于使用对应的用户重建表)。
人大金仓数据库kingbase用户、库、模式、表以及属主的关系
最新推荐文章于 2024-07-01 22:38:57 发布