news 2026/6/9 17:17:57

GBase 8s V8.8 运维管理:认识一个环境变量NODEFDAC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GBase 8s V8.8 运维管理:认识一个环境变量NODEFDAC

在数据库运维管理中,权限控制是保障数据安全的重要环节。今天我们来介绍GBase 8s(gbase database)中一个实用的环境变量——NODEFDAC,它可以帮助我们精细控制新建表的默认访问权限。

在非ANSI兼容的数据库中,通过设置NODEFDAC环境变量为yes,数据库服务器会在创建新表时,不授予PUBLIC默认的表访问权限。

export NODEFDAC=yes

关键注意事项:

- yes 设置区分大小写,并且对前导和尾随空格敏感
- 设置中包含大写字母或空格相当于未设置NODEFDAC
- 当NODEFDAC未设置,或设置为除 yes 之外的任何值,在非ANSI兼容的数据库中创建表,默认会向PUBLIC授予默认权限
- 在ANSI兼容的数据库中启用NODEFDAC没有任何效果

实际演示

场景一:默认行为(未设置NODEFDAC)

-- gbasedbt用户建库建表 > create database testdac with log; Database created. > create table t1(id int); Table created. -- 查看缺省情况下PUBLIC对新建表的默认访问权限 -- (insert, delete, update, select, index) > select * from systabauth where tabid=100; grantor root grantee public tabid 100 tabauth su-idx---- 1 row(s) retrieved.

创建普通用户并赋予库级connect权限:

> create user tmp_u_001 with password 'GBase_123'; User created. > grant connect to 'tmp_u_001'; Permission granted.

tmp_u_001用户连接后,自动获得对t1表的PUBLIC权限,可以正常操作:

> connect to 'testdac@ol_tl3302_zm0519' user 'tmp_u_001'; ENTER PASSWORD: Disconnected. Connected. > select * from t1; id No rows found. > insert into t1 values(1); 1 row(s) inserted. > update t1 set id=2; 1 row(s) updated.

场景二:设置NODEFDAC=yes后

# 设置环境变量,无需重启数据库 export NODEFDAC=yes
> database testdac; Database selected. > create table t2(id int); Table created. -- 查看权限,t2表没有缺省权限了 > select * from systabauth where tabid>99; grantor root grantee public tabid 100 -- 这里的100是上面的t1表 tabauth su-idx---- 1 row(s) retrieved.

tmp_u_001用户对t2表无任何权限,操作被拒绝:

> connect to 'testdac@ol_tl3302_zm0519' user 'tmp_u_001'; ENTER PASSWORD: Disconnected. Connected. > select * from t2; 272: No SELECT permission for t2. Error in line 1 Near character position 16 > insert into t2 values(1); 275: The Insert privilege is required for this operation. Error in line 1 Near character position 16 > delete from t2; 274: No DELETE permission for t2. Error in line 1 Near character position 14 > update t2 set id=1; 273: No UPDATE permission for t2. Error in line 1 Near character position 11

NODEFDAC环境变量是GBase 8s中一个简单但实用的权限控制开关。对于需要严格数据访问控制的场景,建议在数据库服务器环境中配置 export NODEFDAC=yes ,避免新建表自动向PUBLIC开放权限,从而提升数据库的安全性。运维人员可根据实际业务需求灵活选用。欢迎访问南大通用技术社区,获取更多GBase 8s技术文章与最佳实践!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 17:14:56

Arduino收音机开发终极指南:用SI4735库构建专业级广播接收系统

Arduino收音机开发终极指南:用SI4735库构建专业级广播接收系统 【免费下载链接】SI4735 SI473X Library for Arduino 项目地址: https://gitcode.com/gh_mirrors/si/SI4735 想要快速构建功能完整的Arduino收音机吗?SI4735开源库为你提供了从AM/FM…

作者头像 李华
网站建设 2026/6/9 17:10:02

掌握Prompt Caching,让你的大模型调用成本直降90%!小白程序员必备收藏

本文深入解析了大模型API调用的成本优化策略,重点介绍了Prompt Caching机制。通过对比KV Cache和Prompt Caching的区别,详细阐述了Prompt Caching的工作原理、不同厂商的收费模式以及如何通过调整prompt结构来提高缓存命中率,从而显著降低大模…

作者头像 李华
网站建设 2026/6/9 17:01:29

wxapkg-convertor终极指南:5分钟掌握微信小程序反编译专业技巧

wxapkg-convertor终极指南:5分钟掌握微信小程序反编译专业技巧 【免费下载链接】wxapkg-convertor 一个反编译微信小程序的工具,仓库也收集各种微信小程序/小游戏.wxapkg文件 项目地址: https://gitcode.com/gh_mirrors/wx/wxapkg-convertor wxap…

作者头像 李华
网站建设 2026/6/9 16:49:13

嵌入式硬件设计实战:从Kinetis K21电气规格到低功耗数据采集系统

1. 项目概述与核心价值在嵌入式硬件开发的日常工作中,我们常常会陷入一种困境:芯片的数据手册(Datasheet)动辄数百页,里面密密麻麻的表格和参数让人望而生畏。尤其是外设的电气规格章节,那些最小、典型、最…

作者头像 李华