百度网站外链发布平台,起点签约的书网站给做封面吗,wordpress资源站源码,国内自建的海淘网站全面教程#xff1a;Nacos 2.3.2 启用鉴权与 MySQL 数据存储配置
1. 配置 Nacos 开启鉴权功能
1.1 修改 application.properties 配置文件
在 Nacos 2.3.2 中#xff0c;开启鉴权功能需要修改 conf/application.properties 文件。按照以下方式配置#xff1a;
# 开启鉴权…全面教程Nacos 2.3.2 启用鉴权与 MySQL 数据存储配置
1. 配置 Nacos 开启鉴权功能
1.1 修改 application.properties 配置文件
在 Nacos 2.3.2 中开启鉴权功能需要修改 conf/application.properties 文件。按照以下方式配置
# 开启鉴权功能
nacos.core.auth.enabledtrue### 从 1.4.1 版本开始当 nacos.core.auth.enabledtrue 且 nacos.core.auth.enable.userAgentAuthWhitefalse 时生效。
### 这两个属性是鉴权的白名单用于识别来自其他服务器的请求。鉴权开启时这两个参数必须配置否则会报错
nacos.core.auth.server.identity.keyvdn
nacos.core.auth.server.identity.valuevdn123报错如下
自定义密钥 开启鉴权之后你可以自定义用于生成JWT令牌的密钥application.properties中的配置信息为 注意
文档中提供的密钥为公开密钥在实际部署时请更换为其他密钥内容防止密钥泄漏导致安全风险。在2.2.1版本后社区发布版本将移除以文档如下值作为默认值需要自行填充否则无法启动节点。密钥需要保持节点间一致长时间不一致可能导致403 invalid token错误。
默认密匙
### The default token(Base64 String):
nacos.core.auth.default.token.secret.keySecretKey012345678901234567890123456789012345678901234567890123456789自定义密钥 推荐将配置项设置为Base64编码的字符串且原始密钥长度不得低于32字符。例如下面的的例子
### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.keyVGhpc0lzTXlDdXN0b21TZWNyZXRLZXk5OTk5OTk5OTk1.3 启动 Nacos 服务
完成配置后重新启动 Nacos 服务。在启动时Nacos 将会启用鉴权机制所有需要认证的请求都将要求提供用户名和密码。 启动命令
startup.cmd -m standalone2. 配置 MySQL 数据库作为存储
2.1 配置 MySQL 数据源
要让 Nacos 使用 MySQL 作为存储后端你需要配置数据库连接。打开 conf/application.properties并修改如下
spring.sql.init.platformmysqldb.num1### Connect URL of DB:
db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTCallowPublicKeyRetrievaltrue
db.user.0nacos
db.password.0nacos
注意 确保替换 db.url.0、db.user.0 和 db.password.0 为你自己的 MySQL 数据库连接信息。
2.2 创建数据库和表
如果你希望在 MySQL 中创建一个数据库、用户名和密码都为 nacos可以按照以下步骤进行配置
2.2.1 创建数据库
登录到 MySQL
mysql -u root -p创建一个名为 nacos 的数据库
CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;2.2.2 创建用户并授权
创建一个名为 nacos 的用户并为其授予对 nacos 数据库的所有权限
CREATE USER nacoslocalhost IDENTIFIED BY nacos;
GRANT ALL PRIVILEGES ON nacos.* TO nacoslocalhost;
FLUSH PRIVILEGES;这将创建一个名为 nacos 的用户密码为 nacos并允许该用户访问 nacos 数据库。
2.2.3 nacos数据库初始化脚本
/** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the License);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*//******************************************/
/* 表名称 config_info */
/******************************************/
CREATE TABLE config_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) DEFAULT NULL COMMENT group_id,content longtext NOT NULL COMMENT content,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,app_name varchar(128) DEFAULT NULL COMMENT app_name,tenant_id varchar(128) DEFAULT COMMENT 租户字段,c_desc varchar(256) DEFAULT NULL COMMENT configuration description,c_use varchar(64) DEFAULT NULL COMMENT configuration usage,effect varchar(64) DEFAULT NULL COMMENT 配置生效的描述,type varchar(64) DEFAULT NULL COMMENT 配置的类型,c_schema text COMMENT 配置的模式,encrypted_data_key text NOT NULL COMMENT 密钥,PRIMARY KEY (id),UNIQUE KEY uk_configinfo_datagrouptenant (data_id,group_id,tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info;/******************************************/
/* 表名称 config_info_aggr */
/******************************************/
CREATE TABLE config_info_aggr (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,datum_id varchar(255) NOT NULL COMMENT datum_id,content longtext NOT NULL COMMENT 内容,gmt_modified datetime NOT NULL COMMENT 修改时间,app_name varchar(128) DEFAULT NULL COMMENT app_name,tenant_id varchar(128) DEFAULT COMMENT 租户字段,PRIMARY KEY (id),UNIQUE KEY uk_configinfoaggr_datagrouptenantdatum (data_id,group_id,tenant_id,datum_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT增加租户字段;/******************************************/
/* 表名称 config_info_beta */
/******************************************/
CREATE TABLE config_info_beta (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL COMMENT content,beta_ips varchar(1024) DEFAULT NULL COMMENT betaIps,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,tenant_id varchar(128) DEFAULT COMMENT 租户字段,encrypted_data_key text NOT NULL COMMENT 密钥,PRIMARY KEY (id),UNIQUE KEY uk_configinfobeta_datagrouptenant (data_id,group_id,tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_beta;/******************************************/
/* 表名称 config_info_tag */
/******************************************/
CREATE TABLE config_info_tag (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,tenant_id varchar(128) DEFAULT COMMENT tenant_id,tag_id varchar(128) NOT NULL COMMENT tag_id,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL COMMENT content,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,PRIMARY KEY (id),UNIQUE KEY uk_configinfotag_datagrouptenanttag (data_id,group_id,tenant_id,tag_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_tag;/******************************************/
/* 表名称 config_tags_relation */
/******************************************/
CREATE TABLE config_tags_relation (id bigint(20) NOT NULL COMMENT id,tag_name varchar(128) NOT NULL COMMENT tag_name,tag_type varchar(64) DEFAULT NULL COMMENT tag_type,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,tenant_id varchar(128) DEFAULT COMMENT tenant_id,nid bigint(20) NOT NULL AUTO_INCREMENT COMMENT nid, 自增长标识,PRIMARY KEY (nid),UNIQUE KEY uk_configtagrelation_configidtag (id,tag_name,tag_type),KEY idx_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_tag_relation;/******************************************/
/* 表名称 group_capacity */
/******************************************/
CREATE TABLE group_capacity (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,group_id varchar(128) NOT NULL DEFAULT COMMENT Group ID空字符表示整个集群,quota int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额0表示使用默认值,usage int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,max_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限单位为字节0表示使用默认值,max_aggr_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数0表示使用默认值,max_aggr_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限单位为字节0表示使用默认值,max_history_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_group_id (group_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT集群、各Group容量信息表;/******************************************/
/* 表名称 his_config_info */
/******************************************/
CREATE TABLE his_config_info (id bigint(20) unsigned NOT NULL COMMENT id,nid bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT nid, 自增标识,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL COMMENT content,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,op_type char(10) DEFAULT NULL COMMENT operation type,tenant_id varchar(128) DEFAULT COMMENT 租户字段,encrypted_data_key text NOT NULL COMMENT 密钥,PRIMARY KEY (nid),KEY idx_gmt_create (gmt_create),KEY idx_gmt_modified (gmt_modified),KEY idx_did (data_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT多租户改造;/******************************************/
/* 表名称 tenant_capacity */
/******************************************/
CREATE TABLE tenant_capacity (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,tenant_id varchar(128) NOT NULL DEFAULT COMMENT Tenant ID,quota int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额0表示使用默认值,usage int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,max_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限单位为字节0表示使用默认值,max_aggr_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,max_aggr_size int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限单位为字节0表示使用默认值,max_history_count int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT租户容量信息表;CREATE TABLE tenant_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,kp varchar(128) NOT NULL COMMENT kp,tenant_id varchar(128) default COMMENT tenant_id,tenant_name varchar(128) default COMMENT tenant_name,tenant_desc varchar(256) DEFAULT NULL COMMENT tenant_desc,create_source varchar(32) DEFAULT NULL COMMENT create_source,gmt_create bigint(20) NOT NULL COMMENT 创建时间,gmt_modified bigint(20) NOT NULL COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_tenant_info_kptenantid (kp,tenant_id),KEY idx_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTtenant_info;CREATE TABLE users (username varchar(50) NOT NULL PRIMARY KEY COMMENT username,password varchar(500) NOT NULL COMMENT password,enabled boolean NOT NULL COMMENT enabled
);CREATE TABLE roles (username varchar(50) NOT NULL COMMENT username,role varchar(50) NOT NULL COMMENT role,UNIQUE INDEX idx_user_role (username ASC, role ASC) USING BTREE
);CREATE TABLE permissions (role varchar(50) NOT NULL COMMENT role,resource varchar(128) NOT NULL COMMENT resource,action varchar(8) NOT NULL COMMENT action,UNIQUE INDEX uk_role_permission (role,resource,action) USING BTREE
);INSERT INTO users (username, password, enabled) VALUES (nacos, $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);
3. 验证配置
完成配置并重新启动 Nacos 服务后你可以通过以下步骤验证是否配置正确 验证鉴权功能访问 Nacos 控制台输入配置的用户名和密码进行登录确保启用了鉴权。如图所示 验证数据库连接在 Nacos 控制台中尝试保存和读取配置查看是否成功将数据存储到 MySQL 数据库。如图用户表已有数据 验证权限控制如果启用了权限控制尝试使用不同的用户名进行操作确保权限有效。
4. 总结
通过上述步骤你可以在 Nacos 2.3.2 中成功开启鉴权功能并将 Nacos 配置数据存储后端切换为 MySQL 数据库。这样不仅增强了安全性还提高了配置管理的灵活性和可靠性。