- Python3 环境搭建指南
lly202406
开发语言
Python3环境搭建指南1.引言Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能而闻名。Python3是Python的最新版本,它在Python2的基础上进行了大量更新和改进。本指南将详细介绍如何在您的计算机上搭建Python3环境,以便您可以开始编写和运行Python程序。2.系统要求在开始安装Python3之前,请确保您的计算机满足以下最低系统要求:操作系统:Wind
- 【python自动化运维】python第三方运维模块应用
leo__programmer
python自动化运维运维python自动化
一、pymysql模块——数据库编程1、介绍第三方模块作用:连接MySQL数据库1.1、操作流程创建数据库连接基于连接创建游标cursor数据库读写操作关闭游标关闭数据库连接2、pymysql模块的使用2.1、准备工作准备MySQL数据库安装pymysql模块pipinstallpymysql安装配置MySQL数据库[root@localhost~]#yuminstall-ymariadb-ser
- 一文学习python中编码和解码
科雷learning
python编程python开发语言
学习目录1什么是编码和解码2编解码基本原理3python的默认编码4什么是10进制/2进制/8进制/16进制?5python的字符串编解码5.1使用str.encode()编码,str.decode()解码5.2解码的乱码问题5.316进制字符串转为普通字符串6python字符串和unicode类型编码转换什么是编码和解码大家都知道计算机是二进制的世界,计算机系统只能识别数字0和1组成的一串串的数
- 张丽霞:对地址转换(NAT)的回顾与反思
junecauzhang
软件综合internet互联网网络防火墙工作transactions
张丽霞:对地址转换(NAT)的回顾与反思PostedonFebruary24,2009byDuanHaixin作者简介:张立霞,美国UCLA计算机系教授,互联网体系结构委员会(IAB)委员,IETFIRTFRoutingResearch工作组副主席(co-chair),ACM会员(Fellow),曾担任ACMSIGCOMM副主席(1999-2003),IEEECommunicationSociet
- ZYNQ + Linux
jerwey
linuxzynq
ZYNQLinux操作系统移植说明文档http://xilinx.eetrend.com/content/2019/100018437.html1,组成ZYNQ上面移植Linux操作系统包括四个部分,uboot,devicetree,kernel,ramdisk.其中uboot类似于bios,负责对设备进行简单的初始化,devicetree以树的形式对zynq相连的硬件设备进行描述,kernel是
- 已知域名如何知道网站的ip
hunter206206
网络tcp/ip网络协议网络
已知域名获取网站IP的方法如下:1.使用ping命令Windows:打开命令提示符,输入pingexample.com,查看返回的IP地址。macOS/Linux:打开终端,输入pingexample.com,查看返回的IP地址。2.使用nslookup命令Windows/macOS/Linux:在命令提示符或终端中输入nslookupexample.com,查看返回的IP地址。3.使用dig命令
- C语言编程数据结构编程练习-顺序栈的操作
墨楠。
#C语言数据结构研习汇Cc语言数据结构开发语言
#define_CRT_SECURE_NO_WARNINGS#include#include#include#include#include#defineMAX_SIZE20//通过数组的方式创建顺序栈出栈,入栈等操作typedefintelementType;typedefstructstack{elementTypedata[MAX_SIZE];inttop;//栈顶intbottom;//栈
- Redis CVE-2022-24834 复现
hicode0101
redis数据库缓存
(CVE-2022-24834)在Redis中执行的特制Lua脚本可能会触发cjson和cmsgpack库中的堆溢出,并导致堆损坏和潜在的远程代码执行。从2.6开始,所有支持Lua脚本的Redis版本都存在该问题,并且仅影响经过认证和授权的用户。GitHub-convisolabs/CVE-2022-24834Contributetoconvisolabs/CVE-2022-24834develo
- GaussDB数据库SQL系列-LOCK TABLE
关沵什么柿
数据库gaussdbsql
一、前言GaussDB是一款高性能、高可用的分布式数据库,广泛应用于各类行业和场景。在GaussDB中,锁是实现并发控制的关键机制之一,用于协调多个事务之间的数据访问,确保数据的一致性和完整性。本文将围绕GaussDB数据库的LOCKTABLE做一简单介绍。二、GaussDB数据库的锁GaussDB提供了多种锁模式用于控制对表中数据的并发访问。这些模式可以用在MVCC(多版本并发控制)无法给出期望
- Python timedelta 时间间隔
人生重启
Pythonpython
Pythontimedelta对象用于表示时间间隔,可以通过以下方式初始化:指定天、小时、分钟、秒和毫秒:fromdatetimeimporttimedeltatimedelta(days=2,hours=6,minutes=30,seconds=15,milliseconds=500)从总秒数指定:timedelta(seconds=3600)#1hour从日期差指定:end_date=date
- postgrel执行VACUUM报VACUUM cannot run inside a transaction block
dianzufa9403
数据库golangjava
在python脚本里执行:1sql_gp1="VACUUMdwd_access_record_inout_temp"2sql_gp2="deletefromdwd_access_record_inout_temptwheret.indate>(selectnow()::timestamp-interval'36hour')"3conn=gputil.connect(logger,target_ho
- 2024年华为OD机试真题- 英文输入法-(C++/Java/python)-OD统一考试(C卷D卷)
dijkstra2023
华为odc++pythonjava
题目描述主管期望你来实现英文输入法单词联想功能,需求如下:依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词。按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。注意英文单词联想时区分大小写缩略形式如"don’t"判定为两个单词"don"和“t”输出的单词序列不能有重复单词,且只能是英文单词,不能有标点符号输入描述输入两行首行输入一段由英文单词word和标点构成的
- MySQL面试题 2024 金九银十 最新 C# 高级 资深 DB 八股文
云草桑
.net面试sql数据库mysqlsqlnetc#
最新mysql八股文chatgpt都能回答的问题,就没必要螺丝是往那边扭了。目录一、数据库知识(通用)篇1.说说drop、truncate、delete区别2.说说主键、外键、超键、候选键3.varchar和char的使用场景?4.什么叫视图?游标是什么?5.说说like%和-的区别6.为什么用自增列作为主键?7.说说非关系型数据库和关系型数据库区别,优势比较?8.说说存储过程的优缺点?9.什么是
- Mybatis-plus 多租户插件
YaYicho
mybatisjava
前言本篇主要分析Mybatis-plus多租户插件,然后根据多租户插件在延伸到其他场景案例Mybatis-plus官网对多租户插件已有详细讲解,这里就不在附上使用案例。源码分析MybatisPlus官方是由TenantLineInnerInterceptor这个拦截器进行多租户功能处理,所以,本篇章主要对TenantLineInnerInterceptor这个类的讲解。TenantLineInne
- Java开发笔记
zxg45
个人笔记#Javajavaspringbootjdk
Java开发笔记1、工具类1.1时间1.2JSON操作2、文件操作3、网络1、工具类1.1时间时间格式化publicstaticfinalDATE_PATTERN="yyyy-MM-ddHH:mm:ssSSS";Stringdate=newSimpleDateFormat(DATE_PATTERN).format(newDate());实体类注解时间格式化publicstaticfinalStri
- MySQL 基础篇
睫毛进眼睛了!
SQLmysql
文章目录MySQL基础篇1.数据库概述1.1.表、记录、字段1.2.表的关联关系1.2.1.一对一关联(one-to-one)1.2.2.一对多关联(ont-to-many)1.2.3.多对多关联(mant-to-many)2.SQL之SELECT2.1.基本规则2.2.基本语法2.3.运算符2.3.1.算术运算符2.3.2.比较运算符2.3.3.逻辑运算符2.3.4.位运算符2.3.5.运算符优
- 【Python】Python-JOSE:Python 中的 JSON Web Token 处理库
@Unity打怪升级
Pythonpythonjson人工智能前端开发语言开源机器学习
Python-JOSE是一个用于处理JSONWebToken(JWT)和JOSE(JSONObjectSigningandEncryption)标准的Python库。它支持对JWT进行签名、加密、解密和验证等操作,是处理基于OAuth2.0和OpenIDConnect协议的身份验证和授权任务的理想选择。Python-JOSE实现了JOSE规范中定义的JWS(JSONWebSignature)、JW
- IP地址,子网掩码,网关与DNS
Seinikov
嵌入式开发网络
文章目录IP地址IPv4地址子网例子网关DNS服务器IP地址IP地址是网际协议中用于标识发送或接收数据报的设备的一串数字。IPv4地址IPv4地址由32位二进制数字组成。类型组成部分高位到低位网络标志位(最高位)IP范围二进制IP范围十进制使用场景A类一个网络地址+三个主机地址00000.0000.0000.0000-0111.1111.1111.11110.0.0.0-127.255.255.2
- 服务器与机顶盒
黑石云
边缘计算
在PCDN(P2PCDN,即点对点内容分发网络)中,服务器相比盒子具有更高的风险,这主要是由于它们在性能、资源利用、应用场景以及运营方式上的差异所导致的。以下是对这一问题的详细分析:一、性能与资源利用差异服务器:性能强大,能够处理大规模的数据处理和并发访问。资源利用高效且灵活,可以根据需要进行横向或纵向扩展。在处理大规模数据时可能需要更多的带宽资源。盒子(通常指PCDN盒子):可以理解为微型小主机
- 静态路由与动态路由
黑石云
边缘计算
静态路由和动态路由是网络中两种不同的路由配置方式,它们在网络中的运作方式、配置方法以及适用场景等方面存在显著差异。以下是对两者的详细比较:一、定义与配置方式静态路由定义:静态路由是由网络管理员手动配置的固定路径,用于指导数据包从一个网络到另一个网络的传输。配置方式:管理员需要在路由器上手动设置路由表,明确指定数据包到达目的地的路径。动态路由定义:动态路由是通过运行在网络设备上的特定协议(如RIP、
- 24.01.17
2401_87910368
java数据库前端
异步使用 @Resource ThreadPoolTaskExecutortaskExecutor;taskExecutor.execute(()->{//业务代码 });开启异步注解@Configuration@MapperScan("com.javasm.mingming.*.dao")@EnableAsync//开启异步任务注解publicclassServerConfig{ @
- 黑石云|PCDN与DNS的区别
黑石云
边缘计算
PCDN(P2PCDN)与DNS(域名系统)是两种截然不同的网络技术,它们在功能、应用场景以及工作原理等方面存在显著差异。一、定义与功能PCDN定义:PCDN全称P2PCDN,即点对点内容分发网络。它是以P2P技术为基础,通过挖掘利用边缘网络海量碎片化闲置资源而构建的低成本高品质内容分发网络服务。功能:PCDN的核心功能是提高内容分发速度和效率。通过将网站内容复制到用户附近的节点,PCDN可以实现
- 【LLM】Ollama:本地大模型 WebAPI 调用
T0uken
python开发语言
Ollama快速部署安装Docker:从Docker官网下载并安装。部署Ollama:使用以下命令进行部署:dockerrun-d-p11434:11434--nameollama--restartalwaysollama/ollama:latest进入容器并下载qwen2.5:0.5b模型:进入Ollama容器:dockerexec-itollamabash在容器内下载模型:ollamapull
- linux基础
晖.418
linux
今天简单说一下关于linux基础的知识,并不完全,都是一些比较常用的命令,可以进行简单的了解。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
- 使用kubeadm搭建kubernetes单机master,亲测无异常(1)
2301_76238237
程序员kubernetes容器云原生
sudocat/sys/class/dmi/id/product_uuid//每台机器的uuid不能相同ifconfig-a//ip不能相同2.开放端口|协议|方向|端口范围|作用|使用者||—|—|—|—|—||TCP|入站|6443|KubernetesAPI服务器|所有组件||TCP|入站|2379-2380|etcd服务器客户端API|kube-apiserver,etcd||TCP|入站
- 26. 【.NET 8 实战--孢子记账--从单体到微服务】--需求更新--用户注销、修改用户名、安全设置
喵叔哟
.NET8安全开发语言
在实际开发过程中,项目需求的变更和增加是常见的情况,因此这篇文章我们就模拟一下项目需求新增的情况。一、需求项目经理今天提出了新的功能,需要增加重置密码、安全设置、修改用户名、注销账户这四个功能,这四个功能必须是独立的(别问为什么用“必须”,有些产品经理就这么离谱),经过讨论整理出了如下大的需求。编号需求说明1重置密码1.输入旧密码、新密码和确认密码;2.旧密码需要验证。2安全设置1.更新邮箱和手机
- 25.01.15 SpringSecurity 授权
2401_87910368
笔记
//准备工作在登录通过username查询用户时,把用户对应的角色即角色对应的菜单查出,//根据用户的角色rolerid来查询对应的菜单publicinterfaceAdminMenuDaoextendsBaseMapper{@Select("SELECTm.*FROMadmin_menum,rel_role_menurelWHEREm.mid=rel.midANDrel.rid=#{id}")L
- python期末题库和答案,python 期末卷及答案
www55597
人工智能
大家好,给大家分享一下python期末题库和答案,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!6.foriinrange(2,n):ifn%i==0:breakifi==n-1:print('是素数')else:print('不是素数')7.'abcabcabc'.count('abc')的值为__3__。8.对于有else子句的for循环和while循环,但循环因循环条件不成立而自
- 旋转编码器驱动-标准库和HAL库
末时清
单片机stm32嵌入式硬件
一、标准库Encoder.c-标准库#include"stm32f10x.h"//Deviceheader#include"Delay.h"int8_tEncoder_Count;/***函数:旋转编码器初始化*参数:无*返回值:无*/voidEncoder_Init(void){/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
- C语言中求余的作用
Ethan@LM
c语言哈希算法开发语言
1.判断奇偶性求余运算常用于判断一个整数是否为偶数或奇数:偶数:n%2==0奇数:n%2!=0#includeintmain(){intnum=5;if(num%2==0){printf("%d是偶数\n",num);}else{printf("%d是奇数\n",num);}return0;}判断3的倍数:#includeintis_multiple_of_3(intn){returnn%3==0
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D