ALTER DATABASE
功能描述
修改数据库的属性,包括它的名称、所有者、连接数限制、对象隔离属性等。
注意事项
只有数据库的所有者或者被授予了数据库ALTER 权限的用户才能执行ALTER
DATABASE 命令,系统管理员默认拥有此权限。针对所要修改属性的不同,还有
以下权限约束:
修改数据库名称,必须拥有CREATEDB 权限。
修改数据库所有者,
当前用户必须是该database 的所有者或者系统管理员,
必
须拥有CREATEDB 权限,且该用户是新所有者角色的成员。
修改数据库默认表空间,必须拥有新表空间的CREATE 权限。这个语句会从
物理上将一个数据库原来缺省表空间上的表和索引移至新的表空间。
注意不在
缺省表空间的表和索引不受此影响。
不能重命名当前使用的数据库,如果需要重新命名,须连接至其他数据库上。
语法格式
修改数据库的最大连接数。
ALTER DATABASE database_name [ [ WITH ] CONNECTION LIMIT connlimit ];
修改数据库名称。
ALTER DATABASE database_name RENAME TO new_name;
修改数据库所属者。
ALTER DATABASE database_name OWNER TO new_owner;
修改数据库默认表空间。
ALTER DATABASE database_name SET TABLESPACE new_tablespace;
修改数据库指定会话参数值。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
686
ALTER DATABASE database_name SET configuration_parameter { { TO | = } { value |
DEFAULT } | FROM CURRENT };
数据库配置参数重置。
ALTER DATABASE database_name RESET { configuration_parameter | ALL };
修改数据库对象隔离属性。
ALTER DATABASE database_name [ WITH ] { ENABLE | DISABLE } PRIVATE OBJECT;
修改数据库的对象隔离属性时须连接至该数据库,否则无法更改。
新创建的数据库,对象隔离属性默认是关闭的。当开启数据库对象隔离属性后,普通用
户只能查看有权访问的对象(表、函数、视图、字段等)
。对象隔离特性对管理员用户不生
效,当开启对象隔离特性后,管理员也可以查看到全量的数据库对象。
参数说明
database_name
需要修改属性的数据库名称。
取值范围:字符串,要符合标识符的命名规范。
connlimit
数据库可以接收的最大并发连接数(管理员用户连接除外)
。
取值范围:整数,建议填写1~50 的整数。-1(缺省)表示没有限制。
new_name
数据库的新名称。
取值范围:字符串,要符合标识符的命名规范。
new_owner
数据库的新所有者。
取值范围:字符串,有效的用户名。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
687
new_tablespace
数据库新的默认表空间,该表空间为数据库中已经存在的表空间。默认的表空间为
pg_default。
取值范围:字符串,有效的表空间名。
configuration_parameter
把指定的数据库会话参数值设置为给定的值。
。
取值范围:
DEFAULT
OFF
RESET
如果value 是DEFAULT 或者RESET,
则在新的会话中使用系统的缺省设置。
OFF 关闭
设置。
FROM CURRENT
根据当前会话连接的数据库设置该参数的值。
RESET configuration_parameter
重置指定的数据库会话参数值。
RESET ALL
重置全部的数据库会话参数值。修改的数据库会话参数值,将在下一次会话中生效。
修改数据库默认表空间,
会将旧表空间中的所有表和索引转移到新表空间中,
该操
作不会影响其他非默认表空间中的表和索引。
示例
请参考CREATE DATABASE 的示例。
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
688
相关命令
CREATE DATABASE,DROP DATABASE