Mysql数据库学习--用户及权限操作

【数据库系统概论(王珊)】第4章——数据库安全性 1、安全性级别 TCSEC将系统划分为四组(ABCD)七个等级,依次是D、C1、C2、B1、B2、B3、A1。 D级:是最低级别。将一切不符合更高标准的系统均归于D组。如DOS实操作系统中安全标准为D级的典型例子。 C1级:非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。 C2级:安全产品的最低档次。提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中往往不突出“安全”(Security 阅读详情

目录

1.用户操作

1.1新建普通用户

1.2删除普通用户

1.3修改用户密码

2.权限操作

2.1用户授权

2.2用户收回权限

2.3用户权限查看

3.角色操作

3.1创建角色

3.2角色授权

3.3为用户赋予角色

4.存取控制


 

1.用户操作

1.1新建普通用户

Create user ‘用户名’@ ‘localhost | %’identified by ‘密码’;

Localhost 只能本地登录,% 支持所有主机登录

 

1.2删除普通用户

Drop user 用户名

 

1.3修改用户密码

Root用户

Update mysql.user 

Set authentication_string= MD5(‘密码’) 

Where User= ‘root’ and Host = ‘localhost’;

普通用户

Set password for ‘用户名’@ ‘localhost | %’ = ‘密码’; 

 

2.权限操作

2.1用户授权

Grant all| select,… on 数据库名.表名 to ‘用户名’@ ‘localhost | %’ [with grant option];

 

2.2用户收回权限

Revoke all privileges , grant option from ‘用户名’@ ‘localhost | %’;

Revoke select|…[(表名)] on 数据库名.表名from ‘用户名’@ ‘localhost | %’;

 

2.3用户权限查看

Show grants for ‘用户名’@ ‘localhost | %’;

 

3.角色操作

3.1创建角色

Create role 角色名;

 

3.2角色授权

Grant all| select,… on 数据库名.表名 to ‘角色名’;

 

3.3为用户赋予角色

Grant ‘角色名’ to ‘用户名’@ ‘localhost | %’;

 

4.存取控制

自主存取控制DAC:每个用户对不同的数据库对象有不同的权限

强制存取控制MAC:数据库内实体有敏感度标记(密级),每个用户有许可证级别

       仅当许可证级别大于或等于密级,用户可读取数据库实体

       仅当许可证级别小雨或等于密级,用户可写数据库实体

 

 

本文为个人学习总结,如有错误和问题,欢迎评论留言!

 

 

Mysql数据库学习系列

1.Mysql数据库学习--模式及基本表操作

2.Mysql数据库学习--索引及视图操作

3.Mysql数据库学习--用户及权限操作

4.Mysql数据库学习--数据库完整性

5.Mysql数据库学习--数据库系统概述

6.Mysql数据库学习--关系数据库

 

数据库学习03--用户权限、视图、索引和python操作Mysql 数据库学习03 一、关系型数据库的数据完整性 关系型数据库设置数据完整性有三种方式 1.实体完整性–没有冗余的记录,每条记录都是独一无二的,(不重复) 实现方式——主键/唯一索引 /唯一约束 2.参照完整性—列的数据要参照其他表中列的数据(主键) 实现方式——外键 3.域完整性—-表里的数据都是有效的数据 实现方式——数据类型 /非空约束 /默认值约束/检查约束 二、用... 阅读详情

相关推荐

【Verilog】valid-ready双向握手机制 ——很绕但是很有意思

valid-ready双向握手机制。

GalaxyerKw的博客 1万+

MYSQL用户与权限管理,角色管理

用户名参数表示新建用户的账户,由用户(User) 和主机名(Host) 构成,默认host为'%',表示所有主机(ip)都可登录,也可以使用如'lxc'@'192.168.%.%'的形式 可以不指定用户密码,无需密码登录; 3.修改用户 1.使用DROP USER语句来删除用户时,必须用于DROP USER权限。DROP USER语句的基本语法形式如下: 2.使用DELETE方式删除 执行完DELETE命令后要使用FLUSH命令来使用户生效。1. 使用ALTER USER

清风 4103

CentOS7上装不了最新Chrome?别折腾依赖了,试试这个老版本安装法(附103.0.5060.24 beta下载地址)

本文提供了在CentOS7上安装兼容版Chrome的详细指南,解决了因GLIBC版本限制导致的最新版Chrome无法安装的问题。推荐使用Chrome 103.0.5060.24 beta版本,并附有下载地址和完整安装步骤,包括禁用自动更新和配套工具安装,确保系统稳定性和功能完整性。

weixin_29289821的博客 569

9.用户权限相关命令

Linux 中国用户管理相关的命令使用

WJiaJiaBest的博客 1577

MATLAB射线追踪算法实战:从零搭建通信信号传播模型(附完整代码)

本文提供了一份详细的MATLAB射线追踪算法实战指南,指导读者从零开始搭建通信信号传播模型。内容涵盖场景建模、射线发射、路径追踪与信号计算等核心环节,并附有完整代码,帮助通信与电子工程领域的学习者和工程师快速掌握这一精确模拟电磁波传播的关键技术。

weixin_29092031的博客 198

数据库系统概论第五版课后习题答案第十二章

对元组的插入、删除、修改;语义检查的具体做法是,DBMS读取数据字典,检查是否存在与该语句中的表、视图或索引等要创建的对象相同的对象名,检查该用户是否具有创建数据库对象的权限。答:操作系统提供的封锁机制和DBMS的封锁机制在封锁对象、封锁对象的状态、封锁的粒度、及封锁的类型上存在很大的差别,操作系统的封锁机制不能直接应用在DBMS中,DBMS必须重新设计,来满足复杂的封锁需求。数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。

wenling54321的博客 694

数据库原理与应用

南信大——数据库原理与应用内容自整理

2201_75300626的博客 2332

Python 对接钉钉获取员工上一篇日报或周报内容

摘要:本文介绍使用Python对接钉钉API获取员工日报/周报的方法。首先需创建钉钉应用并开通日志权限,获取员工UserID。通过获取AccessToken进行鉴权,调用topapi/report/list查询日志记录,筛选最新日报/周报后,使用topapi/report/details获取详细内容。需注意权限控制、时间范围筛选和模板匹配等问题。文末提供完整代码示例,并建议扩展自动化触发、数据存储等功能。该方法适用于企业自动化获取员工工作日志的场景。

从技术实践立足,从项目管理方法论延伸思考 808

考研复试--数据库

本人为21考研党,本文作为本人考研的复试笔记 ...

Xulidanga的博客 789

AUTOSAR从入门到精通-汽车电子电气架构(EEA)(二)

需求的传递并非完全是瀑布式的单向传递,而是双向的,只有被下游接受了的需求才是有效的需求,而且,下游是可以反向对上游提出需求的。当街区的设计完成之后,接下来要做的就是每栋建筑的详细设计,建筑的设计者发布的图纸中规定了房屋的主要结构、所在位置与周边环境的相互关系,以及屋中各种组件的位置与相互之间结合的关系,比如砖混结构、房屋的具体位置和朝向、卧室与客厅的相对位置与尺寸、马桶在卫生间中的位置等,还会对各种建筑材料的选取原则给出具体的标准,比如水泥的标号,钢筋的型号,各种电线的等级要求等等。

getusushu的博客 372

ROSTEA软件下载及情感分析详细操作教程(附网盘链接)

原ROST虚拟团队出品的ROST系列文本内容挖掘分析平台,是辅助人文社会科学研究的免费计算平台。该软件可以实现文本预处理、分字、分词、词性识别、特殊名词抽取、词频统计、英文词频统计、情感计算、分类算法、聚类算法等一系列文本挖掘,是人文社科研究和论文写作的一把利器。该软件用户量超过一万人,遍布海内外100多所大学,包括剑桥大学、日本北海道大学、北京大学、清华大学、香港城市大学、澳门大学等众多高校。关于ROSTCM6的安装介绍可以参考之前的文章ROSTCM6软件下载及语义网络分析详细操作教程ROST EA。

m0_64336780的博客 1万+

MySQL学习之用户管理

MySQL学习之用户管理

qq_64034271的博客 1077

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计

define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。

corlin6688的博客 126

MySQL数据库基础全面解析:从零开始掌握核心技能

MySQL是一个开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现属Oracle旗下产品。根据DB-Engines排名,MySQL长期位居全球数据库流行度第二名,在开源数据库中稳居第一。核心优势对比特性MySQL其他竞品开源协议GPL商业授权性能表现读写均衡侧重特定场景社区生态最活跃相对封闭学习曲线平缓陡峭。

l1chvers的博客 1601

深度学习工具包 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")

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL 入门到精通:从零开始学习数据库管理

本文系统介绍了MySQL数据库的基础知识与应用实践,涵盖安装配置、基本操作、SQL查询、数据管理、性能优化等核心内容。文章从MySQL的特点和安装步骤讲起,详细讲解了数据库和表的创建、修改、删除等操作,并深入解析了各种SQL查询语句的使用方法。同时介绍了索引原理、性能优化技巧、用户权限管理以及备份恢复等实用技术。对于初学者而言,这是一份全面的MySQL入门指南,既包含基础语法示例,又提供了性能优化的实用建议,为后续学习数据库事务、存储过程等高级特性打下坚实基础。

spf15188453157的博客 960

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mysql 给用户管理权限_MySQL创建用户和权限管理的方法

一、如何创建用户和密码1.进入到mysql数据库下mysql> use mysqlDatabase changed2.对新用户增删改1.创建用户# 指定ip:192.118.1.1的chao用户登录create user 'chao'@'192.118.1.1' identified by '123';# 指定ip:192.118.1.开头的chao用户登录create user 'chao...

weixin_32421297的博客 988

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

查看 MySQL 数据库中哪个用户拥有最高权限(如 GRANT OPTION 权限)/增加用户/删除用户

使用 MySQL 的root用户登录到 MySQL 服务器。然后输入root用户的密码来登录。

ccryccyt的博客 1286

MySQL中用户权限管理

MySQL中root用户权限太大,不建议平时操作使用root用户(测试环境除外),在平时管理和维护数据库以及通过APP连接使用数据库需要用到权限受限普通用户进行管理。 首先我们先创建一个简单的数据库auth,并在auth中创建表格users,插入两条数据,用于接下来的测试使用。 下面开始MySQL中创建用户,并赋予不同的权限: mysql> grant select on auth.* to user1@localhost identified by ‘123456’; 运行user1用户在本

普通的石头人的博客 328

MYSQL数据库操作

本课件旨在帮助学习者全面掌握 MySQL 数据库的核心操作技能,包括 MySQL,库的管理、表的结构设计与操作、记录的增删改查以及用户权限的细致管理。通过本课件的学习,你将能够熟练运用 MySQL,进行数据库的日常维护与管理,为深入的数据分析与应用开发打下坚实基础。。数据库目前标准的指令集是 SQL。SQL 是 Structured Query Language 的缩写,即结构化查询语言。它是1974年由 Boyce 和 Chamberlin 提出来的,1975~1979 年 IBM 公司研制的关系数据库管

tkzcmz的博客 1144

MySQL之用户权限

语法:grant 权限类型 [(字段列表)][,权限类型[(字段列表)]] on 权限级别 to 'username'@'localhost' [with with_option]语法:revoke 权限类型 [(字段列表)][,权限类型[(字段列表)]] on 权限级别 from 'username'@'localhost';此时test1用户可以使用select命令。检查一下:(还真遇见爆红的错误,哈哈哈)

m0_72898512的博客 276

Mysql_创建普通用户、赋权、撤销权限 的操作

一、mysql 里的所有用户都是存储在数据库mysql的user表里 二、创建普通用户、赋权、撤销权限 的操作 1、创建用户(需要先用root进去mysql)格式:create user '用户名'@'IP' identified by '密码'; # 用户名随便起,IP需是真实存在的IP 查看当前可连接数据库的用户有哪些:select user,host...

weixin_30438813的博客 234

MySQL数据库基本操作

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 应用软件之一。在本篇中,会让大家快速掌握 MySQL 的基本操作,并轻松使用 MySQL 数据库

weixin_51099370的博客 3033

mysql创建用户并授权

mysql 创建用户并授权语句 # 创建数据库 create database db_example; # 创建用户 (用户名@连接ip by 密码) create user 'springuser'@'localhost' identified by 'password' # 授权 grant all on db_example.* to 'springuser'@'localhost'; ...

愿世界和平 1万+

Mysql对 用户增删改 授权、取消授权操作

前用户的权限 如果你想创建一个新的用户,则需要以下操作:

qq_35379096的博客 525

mysql用户相关sql(增删改查,权限)

-- 创建一个用户。 CREATE USER dawei IDENTIFIED by '123456' -- 修改当前登录用户密码 SET PASSWORD = PASSWORD('111111') -- 修改指定用户密码 SET PASSWORD FOR dawei = PASSWORD('111111') -- 重命名 RENAME USER dawei TO dawei1 -- 用户授权 GRANT ALL PRIVILEGES 全部的权限,,库.表 (*.*全部的库,全部的表) --.

qq_41602878的博客 674

MySQL数据库系统学习(从入门到精通)_mysql学习

数值数据类型:TINYINT 、SMALINT 、MEDIUMINT 、INT 、BIGINT 、FLOAT 、DOUBLE 、DECIMAL日期/时间类型:YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP字符串类型:CHAR 、VARCHAR 、BINARY 、VARBINARY 、BLOB 、TEXT 、ENUM 、SET。

2401_84102759的博客 856
上一篇: Mysql数据库学习--索引及视图操作
下一篇: Mysql数据库学习--数据库完整性
今生有幸.~
博客等级 码龄9年 26粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值