听起来好像您的管理员已成功安装数据库并为您提供了所需的详细信息。他们也可能在安装过程中也配置了PostGIS,但如果没有配置,则可以按照以下步骤进行检查。
首先,请管理员安装pgAdmin,这将允许您使用图形界面访问PostgreSQL数据库。
https://www.pgadmin.org/download/windows.php
打开pgAdmin
如果您的PostgreSQL已经安装;
- 在您的计算机上,它将显示为localhost,您应该能够双击“ PostgreSQL(版本号)(localhost:5432)”以连接到它。
- 如果已经在网络上安装了该主机,则需要管理员告知主机地址(如果尚未知道),则需要转到“文件”>“添加服务器”并填写字段;
连接后,转到 Edit > New Object > New Database
给它起个名字。它会出现在您的服务器列表中。
双击以连接到它。检查中Extensions
是否列出了postgis
。
如果不;
通过单击SQL图标打开SQL窗口
并输入
CREATE EXTENSION PostGIS
按“执行查询”-此图标
用鼠标右键单击列表中的数据库并断开连接,然后重新连接。扩展名现在应该已经postgis
列出。
此时,您可以设置一个新的组角色和登录角色,这听起来好像您应该满足安全需求以及整个网络中的用户一样。
或者,如果您只想测试它,则可以继续使用默认角色postgres
。
可以将不同的组设置为具有不同的权限,例如admin和user。然后可以设置用户登录名,并将其分配给适合您要授予用户权限级别的任何组,或者您可以将所有表的访问权限授予admin,仅向用户授予一些权限,等等。您可能不需要admin组。
打开SQL窗口并执行这些查询;
CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT user_group_name TO admin_group_name
GRANT ALL ON DATABASE database_name TO admin_group_name;
设置管理员登录名(以postgres / superuser身份登录)
CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;
设置用户登录名(以postgres / superuser身份登录)
CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;
打开QGIS。开始一个新项目。
单击左侧工具栏中的“添加PostGIS图层”图标。
点击“新建”连接,然后按上述输入连接详细信息(如果您的数据库是本地的,则host就是localhost
)。
您可以在此时测试连接。如果您在用户名和密码字段中选中“保存”框,则会将您的凭据存储在您的个人资料中,因此您无需每次都输入。由您决定,具体取决于您的安全需求。
按确定,然后关闭“添加PostGIS表窗口”
然后转到Database > DB Manager > DB Manager
(最近的QGIS版本已标准安装了DB Manager,您需要安装DB Manager插件的早期版本)
选择PostGIS。将显示默认的公共架构。听起来好像您应该创建一个新的架构而不是使用公共架构。
模式>创建模式-为其命名(no_spaces_or_use_underscores
)
创建完成后,您可以返回pgAdmin进行检查,断开连接,重新连接。现在,新架构应该在那里。
返回QGIS DB Manager,将shapefile上传到数据库中的表中。
单击向下箭头“导入图层/文件”,浏览到要导入的shapefile。单击`...``图标以打开浏览。
为表格命名(again_no_spaces_or_use_underscores
)
选择 Primary key
选择 Geometry Column
选择SRID
并输入CRS代码
现在离开其他一切OK
。
如果数据集很大,则可能需要一段时间,尤其是在网络/互联网连接上
再一次,您可以返回pgAdmin,这次按下刷新,新表将出现在中Tables
。
例如,如果您设置了组角色和用户,则需要授予对模式的访问权限;
GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;
返回到QGIS和“添加PostGIS层”。这次选择连接。打开架构并突出显示表,然后单击“添加”,它将在您的项目空间中打开。