达梦数据库里的模式理解
在达梦数据库中模式是一个逻辑概念,模式是用户下的一个对象,模式是一组具体对象(表、视图、函数等)的合集。
创建一个用户A时会创建一个同名的模式A,一个用户可以拥有多个模式A、B、C…,每个不同模式间的对象名可以像名可以相同。
同一个数据库实例中,不能有同名的模式,例如A用户下有A、B、C模式了,将不能再建立模式A/B/C,无论他模式属于那个用户。
一个用户拥有访问和变更自己所有模式下的所有对象的权限,其他用户如果需要访问这些模式下的对象,必须有管理员或所有者用户本身授权。
引用模式下的对象时,正常情况下A用户访问他的模式模式A下的对象时不需要在对象前面加上模式名,例如select * FROM TABa,但访问模式B下的对象时必须加上模式前缀,如select * from B.TBA_b
可以通过设置会话默认模式的方式临时改变当前会话的模式访问模式,语句未:SET SCHEMA B; 这样就可以直接访问B模式下对象,如select * from TBA_b,但此时访问其他模式对象时就都要加上模式前缀。
当A用户把自己B模式下的对象权限给予E用户时,E访问该对象时也要使用前缀,如select * from E.TAB_e;。
一般情况下我们使用单用户单模式管理对象,这样同时又能实现权限管理,不会使用单用户多模式方式。