Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)

本文介绍了如何使用C语言的getopt()函数连接MySQL数据库,并通过命令行进行用户、用户组的增删改查操作。用户组表中包含控制用户的策略字段。提供了命令行操作示例,包括显示(-S)、新增(-A)、修改(-E)和删除(-D)操作。同时给出了代码下载链接。
摘要由CSDN通过智能技术生成

函数说明——getopt():

函数说明 getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的。

optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");)
1.单个字符,表示选项(如下例中的abcde各为一个选项)。
2.单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg(如下例中的b:c:)。
3 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)

数据库内定义的表,以及每个表的字段:

表内字段的截图:




命令行操作样式-h打印信息:

[root@localhost workwork]# ./userGroupUser users -h

Usage:
-----------------------------------------
	-S	show , show user information!
	-A	add , add user information!
	-D	delete , delete user information!
	-E	edit , edit user information!
	-h	help , display this help note!
	-n 	name , user`s name!
	-p	password ,  user`s password!
	-a	authentication ,  authentication type(0:pass 1:KEY 2:third)!
	-g(+)	group ,  the group to which the user belongs to!
	-e(+)	enable ,  usergroups`s enable type(0:enable 1:disable)!
	-o(+)	policy ,  usergroups`s policy type!
	-r(+)	remark ,  remark!

可以进行的操作:

显示操作: -S

//-S显示名为xxx用户具体信息(所在组、改组定义了什么策略) 提示必须加-n参数
./userGroupUser users -S //显示用户表 用户组表 所有信息
./userGroupUser users -S -n root //显示用户表内 name=root的用户的信息
						//可以显示该用户对应用户组内 所在的组 定义的策略信息

[root@localhost workwork]# ./userGroupUser users -S


[root@localhost workwork]# ./userGroupUser users -S -n root


新增操作: -A

/* 全:./userGroupUser users -A s -n test3 -p test3 -a 2 -groot -rasdc*/
/**添加用户  (-g(+) group ; -r(+) remark)**/  
//新增用户的时候必须有-n|-p|-a选项  name password authentication
//一次性输入所有选项也是错误的  需要为每个参数赋值
	// printf("ADD -- Please enter necessary parameters -n|-p|-a,and assign a value to each parameter!\n");
//-g的参数必须紧跟 否则改用户会默认加入root组;
//-r的参数必须紧跟 否则判定为输入为空
//当-g选项没有加参数时候 默认该用户属于root组;
//-g后的参数不存在则加入失败,提示该用户组不存在
./userGroupUser users -A -n ddf -p aa -a 1//添加用户 name=ddf authentication=1 默认加到用户组root
		//insert into users values(7,'ddf','aa','2018-7-2 16:23:39',1,1,' ','KEY认证需要的文件','');
./userGroupUser users -A -n dds -a 1 -p sd -rkj -gaa //添加用户 name=dds authentication=1 group=aa	
		//insert into users values(6,'dds','sd','2018-7-2 16:20:33',1,1,' ','KEY认证需要的文件','kj');
		//-g后的参数 用户组名不存在不允许加入users usergroups表
/**添加用户组  (-e(+) enable; -o(+) policy; -r(+) remark)**/
/*全: ./userGroupUser usergroups -A  -n dd -e1 -oWEB,HTTP  -rddWH*/  
//新增用户时候有必须参数-n选项 name
//只有-n参数时候 策略状态( enable_type_)为0  默认策略( policy_type_)为所有策略资源
//其他参数 -e(+) 策略状态enable; -o(+)策略类型policy; -r(+) 标记内容remark 
./userGroupUser usergroups -A //提示 Please enter other parameters when you want to add someone!!
./userGroupUser usergroups -A -n aa //用户组表中添加name=aa policy默认如下 remark默认为空 的用户组信息
		//insert into usergroups values(2,'aa','2018-7-2 16:14:19',0,'GET,HEAD,POST,PUT,DELETE,OPTIONS','')
./userGroupUser usergroups -A -n aa -oGET -rasd //向用户组中添加 name=aa policy=GET remark=asd的用户
		//insert into usergroups values(2,'aa','2018-7-2 16:14:46',0,'GET','asd');

# ./userGroupUser usergroups -A  -n dd -e1 -oWEB,HTTP  -rusername-name-dd

# ./userGroupUser users -A s -n test3 -p test3 -a 2 -gdd -ras


修改操作: -E

/**修改用户**/
/*全:./userGroupUser users -E -n test33 -p test33 -a 1 -gaa -rtest3totest33  where name test3 password test3*/
//修改用户操作必须有where name password 字符;且where后个数需为偶数; name password参数需参数值
//判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作
//参数 :-n newname;-p newpassword;-a authentication; -ggroup; -rremark; 
./userGroupUser users -E -n test22 where name test2 password test2 //把名为test2密码为test2的用户名改为test22
/**修改用户组**/
/*全:./userGroupUser usergroups -E -n aaa -e1 -oGET,HEAD -raatoaaa  where name aa*/
//修改用户组操作必须有where name字符;且where后个数需为偶数; name 参数需参数值
//判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作
//参数 : -n newname;-eenabled ; -opolicy; -rremark;
./userGroupUser usergroups -E -n AA where name aa//把aa用户名改为AA
./userGroupUser usergroups -E -n csa -e1 -oAAA,WEB,HTTP -rAAA where name aaa
		//修改 用户组name为aaa为   name=csa enable=1 policy=AAA,WEB,HTTP  remark=AAA

# ./userGroupUser users -E -n test34 -p test33 -a 0 -groot -rtest3totest34  where name test3 password test3


# ./userGroupUser usergroups -E -n ddd -e0 -oGET,HEAD -rddtoddd  where name dd


删除操作: -D

./userGroupUser users -D // 提示 Please enter other parameters when you want to add someone!!
./userGroupUser users -D -n root -p r	//root用户不允许删除 
						//name或passwd 不正确不允许删除 						
./userGroupUser usergroups -D //提示 Please enter other parameters when you want to add someone!!
./userGroupUser usergroups -D -n as//判断是否有用户属
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值