postgreSQL配置文件及用户权限

 PostgreSQL的配置文件及用户权限

作者:小P
来自:LinuxSir.Org
摘要:为了能够远程修改和维护PostgreSQL数据库,我们会涉及到配置文件和用户权限的问题,本文主要介绍了如何配置PostgreSQL的主要配置文件,修改用户权限,使我们能够远程打开数据库;


目录


1. 修改配置文件;
1.1 postgresql.conf; 1.2 pg_hba.conf; 1.3 重新启动postgresql服务器; 2. 配置用户权限;
2.1 创建一个用户; 2.2 创建一个数据库data1,属主为test1; 2.3 创建一个数据表; 2.4 修改数据表的属主; 3. 关于本文; 4. 更新日志; 5. 参考文档; 6. 相关文档;




+++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++

为了能远程使用postgresql数据库,比如说我要在网络上另外一台Windows电脑上使用pgAdmin3来管理使用该Postgresql服务器,您就需要进行一些修改,这些修改主要包括两方面的修改:
一是修改Postgresql的两个配置文件,二是修改数 据库的一些用户权限;


1. 修改配置文件;

注:记得修改任何东西之前都需要备份一下;


1.1 postgresql.conf;

首先我们需要修改Postgresql的配置文件postgresql.conf,该文件在数据目录/etc/postgresql/8.2/main/下,终端下执行:
root@xiaop-laptop:/home/xiaop# vim /etc/postgresql/8.2/main/postgresql.conf

将其中的一句:
listen_address=’localhost’

前面的注释#去掉,并把’localhost’该为’*’;


1.2 pg_hba.conf;

然后我们再来修改Postgresql的配置文件pg_hba.conf,该文件在数据目录/etc/postgresql/8.2/main/下,终端下执行

root@xiaop-laptop:/home/xiaop# vim /etc/postgresql/8.2/main/pg_hba.conf

在文件后面加一句:
host all all 192.168.1.0/24 password

这句的意思是:同网络中192.168.1.*的机器可以以密码的形式使用所有的数据库。更具体的参数意义直接看该配置文件中的注释就可以了;

这里一定要配置正确,否则无法在远程连接postgresql数据库。


1.3 重新启动postgresql服务器;


root@xiaop-laptop:/home/xiaop# /etc/init.d/postgresql-8.2 restart


2. 配置用户权限;

这里介绍一些数据库用户权限的简单配置,以下是在psql中使用:


2.1 创建一个用户;

xiaop=# CREATE USER test1 ;
CREATE ROLE


2.2 创建一个数据库data1,属主为test1;

xiaop=# CREATE DATABASE data1 owner test1;
CREATE DATABASE


2.3 创建一个数据表;

xiaop=# CREATE TABLE test11() ;
CREATE TABLE


2.4 修改数据表的属主;

xiaop=# ALTER TABLE test11 OWNER TO test1;
ALTER TABLE

现在您便可以在局域网内的其他电脑使用其他postgresql客户端工具,以用户名test1打开data1数据库了。

在 Ubuntu 上安装和配置 PostgreSQL 实录 本文介绍了在Ubuntu系统上安装和配置PostgreSQL数据库的完整步骤。主要内容包括:1)通过官方源或PPA源安装最新版本;2)修改配置文件(postgresql.conf和pg_hba.conf)以允许远程访问;3)设置postgres用户密码;4)创建新用户并配置权限;5)防火墙设置和重启服务;6)验证安装和远程连接方法。文章提供了详细的命令行操作指导,帮助用户完成从安装到远程访问的全部配置过程。 阅读详情

相关推荐

WRF替换静态地理数据中的土地利用数据(WRF替换下垫面数据)

   在进行自己的WRF项目模拟的时候,因为需要用中国土地利用数据替换WRF内嵌老旧的土地利用数据,故需要将土地利用进行替换。我使用的中国的土地利用数据是来自中国土地利用数据(1980-2015)。其中我以下载的lucc1980为例进行演示。 1、坐标转换    (1)下载的lucc1980数据如下图所示:    (2)在ArcMap中打开如下图所示: 打开属性表可以看到,lucc1980的坐标系为投影坐标系Krasovsky_1940_Albers,数据格式为GRID。这里需要将投影坐标系转换成地理坐

GIS 1万+

PostgreSQL 修改设置数据库的默认用户以及权限,2024年最新一位软件测试大牛的BAT面试心得与经验总结

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)(img-tLcAulkZ-1713342983902)]设置是 supseruser 以及 登录权限。

2401_84281703的博客 1279

基于虚拟阻抗重塑的构网型VSG变流器SISO序阻抗建模与宽频振荡抑制策略分析(面向高比例新能源并网场景)

本文深入探讨了基于虚拟阻抗控制的构网型VSG变流器SISO序阻抗建模技术及其在高比例新能源并网场景中的宽频振荡抑制策略。通过虚拟阻抗重塑,有效改善了变流器的阻抗特性,解决了次/超同步频段的振荡问题,并提供了参数设计、阻抗扫频验证等实用技巧,为新能源并网系统的稳定性提供了可靠解决方案。

weixin_29268385的博客 251

GBase 8c 创建用户/角色语法说明

GBase 8c 数据库创建用户/角色的语法说明: 语法格式如下: CREATE USER/ROLE name [ [ WITH ] option [ ... ] ] 选项: SUPERUSER | NOSUPERUSER :超级权限,拥有所有权限,默认nosuperuser。 | CREATEDB | NOCREATEDB :建库权限,默认nocreatedb。 | CREATEROLE | NOCREATEROLE :建角色权限,拥有创建、修改、删除角色,默认...

qq_41614765的博客 886

Cadence仿真数字电路功耗

Cadence仿真数字电路功耗 数字电路的功耗采用平均电流乘电源电压获得,所以本文的关键是测量平均电流。 仿真前设置好仿真参数后,在仿真的ADE街边选择:outputs➡to be saved➡select on design 选择电源的负端电流(若选择正端,则电流为负): 选择完成后,在ADE界面讲所选节点的plot也勾选上,点击run。仿真完成后自动显示波形。在波形上选中该电流曲线,右击选择:send to➡calculator 注意上图中,商店前的波形不稳定,需要进行截取。在calculator

qq_41519780的博客 1万+

【无标题】EXCEL实现刷题

运用Excel开发的刷题工具,具有普遍实用性,可将WORD的试题自动导入并实现刷题。

weixin_44081794的博客 2971

从零开始学PostgreSQL (二): 配置文件

文章目录1、postgresql配置文件概览2、postgresql.conf详解3、pg_hba.conf详解4、pg_ident.conf详解5、线上需要调整的参数6、总结PostgreSQL 配置文件概览PostgreSQL 使用三个主要的配置文件来控制服务器的行为、网络访问和用户映射。下面是对这三个文件的详细介绍:1.postgresql.conf这是 PostgreSQL 的主配置文件...

qq_34692500的博客 2687

L2正则化与Ridge回归的关系

非常感谢您提供的详细任务描述和要求。我会尽力按照您的指引来撰写这篇技术博客文章。 L2正则化与Ridge回归的关系 1. 背景介绍 机器学习模型在训练过程中容易出现过拟合的问题,这会导致模型在训练集上表现很好但在测试集上泛化性能较差。为了解决这一问题,正则化技术应运而生。其中

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 659

PostgreSQL的配置文件及用户权限

PostgreSQL的配置文件及用户权限PostgreSQL的配置文件及用户权限作者:小P来自:LinuxSir.Org摘要:为了能够远程修改和维护PostgreSQL数据库,我们会涉及到配置文件和用户权限的问题,本文主要介绍了如何配置PostgreSQL的主要配置文件,修改用户权限,使我们能够远程打开数据库;目录 1.1 postgresql.conf

ccsky001的天空 1237

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 384

鱼鹰优化算法(OOA)详解:从猛禽捕食智能到优化算法实现

鱼鹰优化算法(Osprey Optimization Algorithm, OOA)是2023年提出的一种新型元启发式优化算法,灵感来源于鱼鹰(一种中型猛禽)高效的捕食策略。算法模拟了鱼鹰从空中识别水下鱼类位置并俯冲捕食,然后将捕获的鱼带至安全位置享用的全过程,以此抽象出全局探索和局部开发两个核心阶段。OOA算法具有参数少、结构简单、收敛速度快、全局寻优能力强等特点。自提出以来,已在函数优化、机器学习参数调优(如CatBoost模型)、路径规划等多个领域展现出良好性能,为解决复杂优化问题提供了新的有效工具。

qq_42212808的博客 273

数据库服务器 之 PostgreSQL的配置文件及用户权限

作者:小P来自:LinuxSir.Org摘要:为了能够远程修改和维护PostgreSQL数据库,我们会涉及到配置文件和用户权限的问题,本文主要介绍了如何配置PostgreSQL的主要配置文件,修改用户权限,使我们能够远程打开数据库; 目录 1. 修改配置文件; 1.1 postgresql.conf; 1.2 pg_hba.conf; 1.3 重新启动postgre...

weixin_34313182的博客 814

12、多端神经形态晶体管:原理、应用与算法探索

本文综述了多端神经形态晶体管的原理、应用与算法探索。从神经元MOS晶体管的发展到基于电解质栅极晶体管(EGT)的新型器件设计,系统阐述了其在低电压、多功能逻辑运算和突触行为模拟方面的优势。重点介绍了其在化学生物传感器(如多巴胺和pH检测)中的高灵敏度应用,以及在树突整合、时空总和、动态逻辑和神经元算术等树突算法中的实现。文章还总结了该类器件在神经形态计算、智能传感等领域的广阔前景,并分析了当前面临的材料工艺、理论建模与系统集成挑战,展望了未来发展方向。

delta的博客 143

数据库服务器用户配置,数据库服务器 之 PostgreSQL的配置文件及用户权限

做者:小P来自:LinuxSir.Org摘要:为了可以远程修改和维护PostgreSQL数据库,咱们会涉及到配置文件和用户权限的问题,本文主要介绍了如何配置PostgreSQL的主要配置文件,修改用户权限,使咱们可以远程打开数据库;html1. 修改配置文件;1.1 postgresql.conf;1.2 pg_hba.conf;1.3 从新启动postgresql服务器;2. 配置用户权限;2....

weixin_39617470的博客 352

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PostgreSQL 用户和数据库创建流程

创建数据库用户:你通过创建了devuser用户,并赋予了创建数据库的权限。配置 PostgreSQL 认证方式:修改了配置文件,以确保devuser用户可以通过密码登录。创建数据库:你为devuser创建了一个新的数据库devdb。登录数据库并创建表:成功登录devdb数据库并创建了users表。

ray_paul1的博客 1950

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【PostgreSQL】PostgreSQL数据库允许其他IP连接到数据库(Windows & Linux)

在“控制面板” > “系统和安全” > “Windows Defender防火墙” > “高级设置”中创建一个新的入站规则,允许。完成上述步骤后,外部IP应该可以连接到PostgreSQL数据库了。你需要在此文件中添加允许其他IP连接的配置。这表示允许数据库监听所有IP地址的连接请求。如果只想允许特定的IP连接,可以将。确保服务器上的防火墙允许PostgreSQL的端口(默认是。如果只允许特定IP连接,可以将。首先,需要修改PostgreSQL的主配置文件。,允许数据库监听所有IP的连接请求。

h1773655323的博客 3323

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Postgre数据库用户权限总结

1、故事起源 我们的项目使用了PG数据库,在项目开发阶段,为了省事偷懒,直接将应用连接数据库的用户给了supperuser权限,用起来简直不要太爽。随着开发进度接近中后期,开始筹建用户验收环境,在该环境我依旧直接给了超级用户权限,谁曾想就在前几天甲方爸爸哗啦啦的给了一堆漏洞清单,让我们抓紧整改。一头雾水的我不得不重操旧业,开始四处学习PG的用户权限相关知识。 2、 干货记录 2.1 、创建用户 CREATE USER/ROLE name [ [ WITH ] option [ ... ] ] : 关键词

记录工作生活中的学习笔记和心得体会 7428

PostgreSQL单机部署

登陆PG,用命令修改参数后,修改后的参数会保存在postgresql.auto.conf中,PG重启时,postgresql.auto.conf配置文件中的参数的优先级高于postgresql.conf。修改上述配置文件需执行pg_ctl reload重新载入配置文件才能生效。./configure编译安装时的一些参数。用于配置PG的访问策略。PG相关参数的配置文件。

2201_75865964的博客 322

postgreSQL配置文件及

<br />用户权限<br />摘要:为了能够远程修改和维护PostgreSQL数据库,我们会涉及到配置文件和用户权限的问题,本文主要介绍了如何配置PostgreSQL的主要配置文件,修改用户权限,使我们能够远程打开数据库;<br /><br /><br />目录<br /><br /><br />1. 修改配置文件;<br />1.1 postgresql.conf; 1.2 pg_hba.conf; 1.3 重新启动postgresql服务器; 2. 配置用户权限;<br />2.1 创建一个用户; 2

zzy7075的专栏 1万+

Postgresql安装、初始化及用户, 角色与权限管理

du: 可以查看所有已存在的用户/角色, 以及它们拥有的权限属性\l: 可以查看所有数据库及其属主和所有拥有权限的用户配置选择一个数据库后,\dt可以查看所有表的属主和相应用户权限select * from information_schema.role_table_grants where grantee = '用户名';可以查看指定用户拥有的所有数据库权限。

wang11876的博客 7077

amass权限控制:多用户角色与权限管理实践指南

在现代网络安全架构中,攻击面映射工具(Attack Surface Mapping Tool)如Amass的权限控制机制直接影响资产发现过程的安全性与合规性。当多个用户共享同一套Amass部署或访问中央数据库时,缺乏精细化权限控制可能导致: - 敏感资产信息泄露给未授权人员 - 枚举过程中因误操作扩大攻击面范围 - 数据库记录被意外篡改或删除 - 合规审计缺乏操作追溯能力 本文将系统分析Amas...

gitblog_00992的博客 728

postgresql 远程用户_超详细的PG用户、角色和权限管理总结--第二部分

概述官网:https://www.postgresql.org/docs/11/sql-createuser.htmlPg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。在pg里,对acl模型...

weixin_39985286的博客 631
上一篇: postgreSQL配置文件及用户权限
下一篇: 一个不错的web开发组合
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值