Oracle 创建本地用户,授予权限,创建表并插入数据

news2025/1/5 21:38:40

目录

  • 一. 用户的种类
  • 二. 切换session为PDB
  • 三. 创建用户并授予权限
  • 四. 创建表空间
  • 五. 为用户分配默认表空间并指定表空间配额
  • 六. 通过创建的用户进行登录
  • 七. 创建脚本,简化登录
  • 八. 查看用户信息
  • 九. 创建表,并插入数据
    • 9.1 查看当前用户的schema
    • 9.2 插入数据
    • 9.3 查看


一. 用户的种类

⏹在 Oracle 多租户架构中(从 Oracle 12c 开始),用户分为

  • 普通用户(Common User
    • 用户的名称必须以 C## 开头,在CDB中创建
    • 适用于管理员用户,用户管理CDB下的多个PDB
  • 本地用户(Local User
    • 用户的名称无需以 C## 开头,在PDB中创建
    • 更适合应用开发和租户管理
    • 我们平时开发时用的多是本地用户

⏹数据库刚被安装后,并没有本地用户,我们需要通过system用户登录Oracle之后,创建本地用户。


二. 切换session为PDB

SHOW CON_NAME;:显示当前会话所连接的容器名称

  • 在包含 CDB(容器数据库)和 PDB(可插拔数据库)的环境中,显示会话所连接的容器的名称。
  • 容器可以是根容器(CDB$ROOT)、种子数据库(PDB$SEED)或某个具体的 PDB。
apluser@ubuntu24-01:~$ sqlplus system/oracle@192.168.118.137/XE

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jan 1 09:00:28 2025
Version 21.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Last Successful login time: Tue Dec 31 2024 23:15:56 +09:00

Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>
SQL> SHOW CON_NAME;

CON_NAME
------------------------------
CDB$ROOT
SQL>

⏹查看数据库中所有的PDB

  • SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS;
  • SELECT NAME FROM V$PDBS;
-- 方式1
SQL> SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS;

 PDB_ID PDB_NAME   STATUS
------- ---------- ----------
      3 XEPDB1     NORMAL
      2 PDB$SEED   NORMAL
      
-- 方式2
SQL> SELECT NAME FROM V$PDBS;

NAME
--------------
PDB$SEED
XEPDB1

⏹切换当前用户的sessionPDB

  • ALTER SESSION SET CONTAINER = XEPDB1;
  • 💥我们只有在PDBsession中创建的才是PDB的用户,如果不切换session的话,创建的是CDB的用户。💥
-- 切换session到根容器
SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;

Session altered.

-- 切换session到PDB
SQL> ALTER SESSION SET CONTAINER = XEPDB1;

Session altered.

-- 查看当前容器名称
SQL> SHOW CON_NAME;

CON_NAME
------------------------------
XEPDB1
SQL>

三. 创建用户并授予权限

⏹创建用户并指定密码

SQL> CREATE USER db_user IDENTIFIED BY oracle;

User created.

⏹为创建的用户赋予权限

-- 授予用户登录的权限
GRANT CREATE SESSION TO db_user;

-- 授予用户创建 表,视图,存储过程,序列对象的权限
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE SEQUENCE TO db_user;

⏹查看创建好的PDB用户

  • COMMON = 'NO':滤出PDB的本地用户
  • COMMON = 'YES':滤出CDB的普通用户
SQL> SELECT USER_ID, USERNAME, ACCOUNT_STATUS, COMMON, TO_CHAR(LAST_LOGIN, 'YYYY/MM/DD HH24:MI:SS') LAST_LOGIN FROM DBA_USERS WHERE COMMON = 'NO';

 USER_ID USERNAME   ACCOUNT_STATUS   COM  LAST_LOGIN
-------- ---------- ---------------- ---- -------------------
     108 PDBADMIN   OPEN             NO
     110 DB_USER    OPEN             NO   

四. 创建表空间

  • 默认表空间:用户在不指定表空间的情况下创建的对象(如表)会存储到默认表空间。
  • 临时表空间:用户在执行排序操作(如 ORDER BY 或 GROUP BY)时会使用临时表空间。
  • SIZE 100M AUTOEXTEND ON:表空间大小为100M,当空间不足时,会自动增加
-- 创建默认表空间并指定表空间文件
CREATE TABLESPACE DB_STUDY_LOCAL_01 
DATAFILE 'C:/app/FengYeHong/product/21c/custom_table_space/local_db_study_01.dbf' SIZE 100M AUTOEXTEND ON;

-- 创建临时表空间并指定临时表空间文件
CREATE TEMPORARY TABLESPACE DB_STUDY_TMP_LOCAL_01 
TEMPFILE 'C:/app/FengYeHong/product/21c/custom_table_space/local_db_study_tmp_01.dbf' SIZE 100M AUTOEXTEND ON;

⏹查看创建的表空间

  • 查看数据库中所有的表空间与状态
SQL> SELECT TABLESPACE_NAME, CONTENTS, STATUS FROM DBA_TABLESPACES;

TABLESPACE_NAME                CONTENTS              STATUS
------------------------------ --------------------- ---------
SYSTEM                         PERMANENT             ONLINE
SYSAUX                         PERMANENT             ONLINE
UNDOTBS1                       UNDO                  ONLINE
TEMP                           TEMPORARY             ONLINE
USERS                          PERMANENT             ONLINE
DB_STUDY_LOCAL_01              PERMANENT             ONLINE
DB_STUDY_TMP_LOCAL_01          TEMPORARY             ONLINE

7 rows selected.
  • 查看临时表空间的路径,字节,状态
SQL> set markup csv on
SQL>
SQL> select name,bytes,status from v$tempfile;

"NAME","BYTES","STATUS"
"C:\APP\FENGYEHONG\PRODUCT\21C\ORADATA\XE\XEPDB1\TEMP01.DBF",36700160,"ONLINE"
"C:\APP\FENGYEHONG\PRODUCT\21C\CUSTOM_TABLE_SPACE\LOCAL_DB_STUDY_TMP_01.DBF",104857600,"ONLINE"
  • 查看默认表空间的路径,字节,状态
SQL> set markup csv on
SQL>
SQL> SELECT FILE_NAME, TABLESPACE_NAME, BYTES, STATUS FROM DBA_DATA_FILES;

"FILE_NAME","TABLESPACE_NAME","BYTES","STATUS"
"C:\APP\FENGYEHONG\PRODUCT\21C\ORADATA\XE\XEPDB1\SYSTEM01.DBF","SYSTEM",293601280,"AVAILABLE"
"C:\APP\FENGYEHONG\PRODUCT\21C\ORADATA\XE\XEPDB1\SYSAUX01.DBF","SYSAUX",408944640,"AVAILABLE"
"C:\APP\FENGYEHONG\PRODUCT\21C\ORADATA\XE\XEPDB1\UNDOTBS01.DBF","UNDOTBS1",104857600,"AVAILABLE"
"C:\APP\FENGYEHONG\PRODUCT\21C\ORADATA\XE\XEPDB1\USERS01.DBF","USERS",5242880,"AVAILABLE"
"C:\APP\FENGYEHONG\PRODUCT\21C\CUSTOM_TABLE_SPACE\LOCAL_DB_STUDY_01.DBF","DB_STUDY_LOCAL_01",104857600,"AVAILABLE"

⏹如果要删除表空间的话,可以使用下面的命令。

DROP TABLESPACE DB_STUDY_01 INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE DB_STUDY_TMP_01 INCLUDING CONTENTS AND DATAFILES;

五. 为用户分配默认表空间并指定表空间配额

⏹将用户和表空间关联起来,为用户分配默认表空间和临时表空间。

ALTER USER db_user 
DEFAULT TABLESPACE DB_STUDY_LOCAL_01 
TEMPORARY TABLESPACE DB_STUDY_TMP_LOCAL_01;

⏹确认用户和表空间的关联

SQL> SELECT username, default_tablespace, temporary_tablespace FROM dba_users WHERE username = 'DB_USER';

USERNAME     DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------ ------------------------------ ------------------------------
DB_USER      DB_STUDY_LOCAL_01              DB_STUDY_TMP_LOCAL_01

SQL>

⏹用户有了默认表空间之后,并不意味着可以创建表并成功插入数据,还需要向用户分配表空间的配额,指定用户可以使用的存储配额。

  • DBA_TS_QUOTAS 是 Oracle 数据库中的一个数据字典视图,主要用于显示用户在各个表空间上的配额(Quota)信息。
  • 记录用户在某个表空间中被分配的存储空间限制(配额)。
  • 可以查看配额是有限制的(如 1GB)还是无限制的(UNLIMITED)。
  • 表空间配额示例
    • ALTER USER db_user QUOTA 50M ON DB_STUDY_LOCAL_01;:指定用户有50M的配额。
    • ALTER USER db_user QUOTA UNLIMITED ON DB_STUDY_LOCAL_01;:指定用户有无限的配额。
-- 注意,需要在PDB的session中执行
SQL> ALTER SESSION SET CONTAINER = XEPDB1;

Session altered.

SQL>
-- 在未分配配额之前,查询不到任何数据
SQL> SELECT * FROM DBA_TS_QUOTAS WHERE USERNAME = UPPER('db_user');

no rows selected

SQL>
-- 指定 db_user 用户对 DB_STUDY_LOCAL_01 表空间有无限的配额,可以随意使用
SQL> ALTER USER db_user QUOTA UNLIMITED ON DB_STUDY_LOCAL_01;

User altered.

SQL>
-- 分配完成之后,进一步查看
SQL> SELECT * FROM DBA_TS_QUOTAS WHERE USERNAME = UPPER('db_user');

"TABLESPACE_NAME","USERNAME","BYTES","MAX_BYTES","BLOCKS","MAX_BLOCKS","DROPPED"
"DB_STUDY_LOCAL_01","DB_USER",0,-1,0,-1,"NO"

六. 通过创建的用户进行登录

⏹我们创建的是本地用户,因此通过sqlplus命令进行登录的时候,必须明确的指出使用的是名称为XEPDB1PDB

  • 在 Oracle 的多租户架构中,你需要确保连接到正确的 PDB(可插入数据库)而不是 CDB(容器数据库)。
  • 在连接数据库时,服务名称决定了连接的是哪个数据库实例。
  • CDB 是容器数据库,通常是你管理和创建多个 PDB 的地方。
  • 每个 PDB 是一个独立的数据库,可以有自己的用户、数据和表空间等。
apluser@ubuntu24-01:~$ sqlplus db_user/oracle@192.168.118.137/XEPDB1

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jan 1 10:11:43 2025
Version 21.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Last Successful login time: Tue Dec 31 2024 22:58:55 +09:00

Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL> SHOW CON_NAME;

CON_NAME
------------------------------
XEPDB1
SQL>

⏹修改tnsnames.ora文件

  • 如果我们在多台服务器上有多个PDB的话,可以在sqlplus客户端安装的机器上,配置tnsnames.ora文件的内容,便于登录
apluser@ubuntu24-01:~$ cat $ORACLE_HOME/network/admin/tnsnames.ora
SERVICE_XE_CLIENT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.137)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

SERVICE_XEPDB1_CLIENT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.137)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XEPDB1)
    )
  )
apluser@ubuntu24-01:~$
  • 修改完成之后,就可以通过下面这种方式进行登录了
apluser@ubuntu24-01:~$ sqlplus db_user/oracle@SERVICE_XEPDB1_CLIENT

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jan 1 10:21:32 2025
Version 21.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Last Successful login time: Wed Jan 01 2025 10:11:44 +09:00

Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>

七. 创建脚本,简化登录

  • 每次登录oracle数据库,都要输入一长串的命令,很繁琐。可以创建一个脚本简化登录。
apluser@ubuntu24-01:~$ which oralce_db_connect
/home/apluser/bin/oralce_db_connect
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ ls -l /home/apluser/bin/oralce_db_connect
-rwxrwxr-x 1 apluser apluser 912 Jan  1 08:43 /home/apluser/bin/oralce_db_connect
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ cat /home/apluser/bin/oralce_db_connect
#!/bin/bash
# ################################################
# 简介:
# 动态连接 Oracle 数据库
#
# 完整方式连接数据库
# sqlplus db_user/oracle@192.168.118.137/XEPDB1
#
# 用法
# 1. oralce_db_connect
# 2. oralce_db_connect dba
# # ################################################

# 默认参数
USERNAME="db_user"
PASSWORD="oracle"
SERVICE="SERVICE_XEPDB1_CLIENT"
MSG="通过普通用户登录..."

# 如果传入参数为 "dba",则使用 system 用户登录
if [ "$1" == "dba" ]; then
  USERNAME="system"
  PASSWORD="oracle"
  SERVICE="SERVICE_XE_CLIENT"
  MSG="通过dba用户登录..."
fi

# 构造连接oracle数据库的命令
connect_oracle_db_command="sqlplus ${USERNAME}/${PASSWORD}@${SERVICE}"

# 打印连接oracle数据库的命令
echo "${connect_oracle_db_command}"

# 打印提示消息
echo -e "\e[1;31m$MSG\e[0m"

# 连接oracle数据库
eval "${connect_oracle_db_command}"
  • 登录效果

在这里插入图片描述


八. 查看用户信息

USER_USERS

  • 不需要DBA用户
  • 显示当前会话用户的基本信息,例如用户名、创建时间、默认表空间等。
  • 仅适用于当前登录用户,无法查看其它用户的信息。
SQL> SELECT USERNAME, USER_ID, ACCOUNT_STATUS FROM USER_USERS;

"USERNAME","USER_ID","ACCOUNT_STATUS"
"DB_USER",110,"OPEN"

DBA_USERS

  • 需要DBA用户
  • 显示数据库中所有用户的详细信息,包括用户名、账户状态、默认表空间、密码有效期等。
  • 数据库管理员(DBA)管理用户时使用,查看所有用户的账户状态,如是否锁定、密码是否过期等。
SQL> SELECT USER_ID, USERNAME, ACCOUNT_STATUS, COMMON, TO_CHAR(LAST_LOGIN, 'YYYY/MM/DD HH24:MI:SS') LAST_LOGIN FROM DBA_USERS WHERE USERNAME = 'DB_USER';

   USER_ID USERNAME          ACCOUNT_STATUS        COM LAST_LOGIN
---------- ----------------- --------------------- --- -------------------
       110 DB_USER           OPEN                  NO  2025/01/01 13:13:49

ALL_USERS

  • 不需要DBA用户
  • 显示数据库中所有用户的基本信息,但比 DBA_USERS 提供的信息少。
SQL> SELECT USER_ID, USERNAME, COMMON FROM ALL_USERS WHERE USERNAME = 'DB_USER';

"USER_ID","USERNAME","COMMON"
110,"DB_USER","NO"

DBA_SYS_PRIVS

  • 需要DBA用户
  • 查看用户所有的权限
SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DB_USER';

GRANTEE PRIVILEGE                                ADM COM INH
------- ---------------------------------------- --- --- ---
DB_USER CREATE PROCEDURE                         NO  NO  NO
DB_USER CREATE SEQUENCE                          NO  NO  NO
DB_USER CREATE VIEW                              NO  NO  NO
DB_USER CREATE TABLE                             NO  NO  NO
DB_USER CREATE SESSION                           NO  NO  NO

九. 创建表,并插入数据

9.1 查看当前用户的schema

⏹一般来说,用户默认的schema和用户名相同,也可以通过下面这种方式进行查看。

SQL> SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') AS DEFAULT_SCHEMA FROM DUAL;

"DEFAULT_SCHEMA"
"DB_USER"

9.2 插入数据

⏹在创建表的时候,指定表空间,如果不指定的话,将会使用当前用户默认的表空间。

  • TABLESPACE DB_STUDY_LOCAL_01:指定表空间
  • DB_USER.PERSON_TABLE:指定schema
CREATE TABLE DB_USER.PERSON_TABLE (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(50),
    age NUMBER,
    email VARCHAR2(100),
    created_date DATE
) TABLESPACE DB_STUDY_LOCAL_01;

⏹写一个脚本,自动向表中插入100条数据

BEGIN
    FOR i IN 1..100 LOOP
        INSERT INTO DB_USER.PERSON_TABLE (id, name, age, email, created_date)
        VALUES (
            i,
            'Name_' || i,
            TRUNC(DBMS_RANDOM.VALUE(18, 60)), -- 随机年龄
            'user' || i || '@example.com',
            SYSDATE - DBMS_RANDOM.VALUE(0, 365) -- 随机日期
        );
    END LOOP;
    COMMIT;
END;
/

9.3 查看

⏹本地用户查看表名所在的表空间 👉 USER_TABLES

SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME = 'PERSON_TABLE';

"TABLE_NAME","TABLESPACE_NAME"
"PERSON_TABLE","DB_STUDY_LOCAL_01"

⏹DBA用户查看表名所在的表空间 👉 DBA_TABLES

SQL> SELECT TABLE_NAME, OWNER, TABLESPACE_NAME FROM DBA_TABLES WHERE TABLE_NAME = 'PERSON_TABLE';

"TABLE_NAME","OWNER","TABLESPACE_NAME"
"PERSON_TABLE","DB_USER","DB_STUDY_LOCAL_01"

⏹可以看到,数据插入成功后可以被查询到。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统设计——大文件传输方案设计

摘要 大文件传输是指通过网络将体积较大的文件从一个位置发送到另一个位置的过程。这些文件可能包括高清视频、大型数据库、复杂的软件安装包等,它们的大小通常超过几百兆字节(MB)甚至达到几个吉字节(GB)或更大。大文…

【老白学 Java】简单位移动画

简单位移动画 文章来源:《Head First Java》修炼感悟。 上一篇文章中,老白利用内部类的特性完成了多个事件的处理,感觉还不错。 为了更深入理解内部类,本篇文章继续使用内部类创建一个画板,完成简单的位移动画&#x…

彻底解决 Selenium ChromeDriver 不匹配问题:Selenium ChromeDriver 最新版本下载安装教程

在 Python 的 Selenium 自动化测试中,ChromeDriver 是不可或缺的工具。它作为代码与 Chrome 浏览器的桥梁,但如果版本不匹配,就会导致各种报错,尤其是以下常见问题: selenium.common.exceptions.SessionNotCreatedExc…

[CTF/网络安全] 攻防世界 warmup 解题详析

查看页面源代码&#xff0c;发现source.php 得到一串代码&#xff0c;进行代码审计&#xff1a; <?phpclass emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php"];…

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

一、前言 笔者之前的文章《基于Dpabi和spm12的脑脊液(csf)分割和提取笔记》,介绍了如何从普通的fMRI数据中提取CSF信号。首先是基础的预处理,包括时间层校正、头动校正,再加上0.01-0.1Hz的带通滤波。接着用SPM12分割出CSF区域,设置一个比较严格的0.9阈值,确保提取的真是…

游泳溺水识别数据集,对25729张图片进行YOLO,COCO JSON, VOC XML 格式的标注,溺水平均识别率在89.9%

游泳溺水识别数据集&#xff0c;对25729张图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;溺水识别率在92&#xff05; 训练结果 数据集和标签 验证 游泳测试视频 根据测试的视频来获取检测结果&#xff1a; 游泳测试视频的置信度设置60% 检测结果如下&…

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨 MacBook Pro&#xff0c;芯片&#xff1a;Apple M2 Pro, macOS: Sonoma 14.0一直知道很多软件对Mac M1或M2的支持不好&#xff0c;但没想到在安装MySQL 8.x上也让我吃尽了苦头本文除了介绍如何安装MySQL 8.4.3外&#xff0c;还会记录笔者遇到的一些问题以及解决方法 …

闻泰科技涨停-操盘训练营实战-选股和操作技术解密

如上图&#xff0c;闻泰科技&#xff0c;今日涨停&#xff0c;这是前两天分享布局的一个潜伏短线的标的。 选股思路&#xff1a; 1.主图指标三条智能辅助线粘合聚拢&#xff0c;即将选择方向 2.上图红色框住部分&#xff0c;在三线聚拢位置&#xff0c;震荡筑底&#xff0c;…

ts总结一下

ts基础应用 /*** 泛型工具类型*/ interface IProps {id: string;title: string;children: number[]; } type omita Omit<IProps, id | title>; const omitaA: omita {children: [1] }; type picka Pick<IProps, id | title>; const pickaA: picka {id: ,title…

Linux:各发行版及其包管理工具

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Debian 包管理工具&#xff1a;dpkg&#xff08;低级包管理器&#xff09;、apt&#xff08;高级包管理器&#xff0c;建立在dpkg基础上&#xff09;包格式&#xff1a;…

2024秋语法分析作业-B(满分25分)

特别注意&#xff1a;第17条产生式改为 17) Stmt → while ( Cond ) Stmt 【问题描述】 本次作业只测试一个含简单变量声明、赋值语句、输出语句、if语句和while语句的文法&#xff1a; 0) CompUnit → Block 1) Block → { BlockItemList } 2) BlockItemList → BlockItem…

Tomcat优化指南

以下是一份详细的Tomcat优化指南&#xff1a; 一、JVM&#xff08;Java虚拟机&#xff09;优化 内存设置 堆内存&#xff08;Heap Memory&#xff09; 调整-Xms&#xff08;初始堆大小&#xff09;和-Xmx&#xff08;最大堆大小&#xff09;参数。一般来说&#xff0c;将初始…

【我的 PWN 学习手札】IO_FILE 之 劫持vtable

vtable帮助C实现了类似于多态的效果&#xff0c;然而其中的大量函数指针&#xff0c;一旦被劫持修改&#xff0c;就会产生巨大的危害。 前言 【我的 PWN 学习手札】IO_FILE相关几个基本函数的调用链源码-CSDN博客 【我的 PWN 学习手札】IO_FILE 之 stdin任意地址写-CSDN博客…

力扣编程从0-1

第一题 class Solution:def mergeAlternately(self, word1: str, word2: str) -> str:#计算两个字符串长度&#xff0c;从i 0开始遍历&#xff0c;每次循环&#xff1a;#如果i小于word1的长度&#xff0c;把word1[i]加到答案末尾#如果i小于word2的长度&#xff0c;把word2[…

SpringMVC(一)配置

目录 引入 第一章&#xff1a;Java web的发展历史 一、Model I和Model II 1.Model I开发模式 2.Model II开发模式 二. MVC模式 第二章&#xff1a;SpringMVC的入门案例 搭建SpringMVC的入门程序 1.创建新项目 2.等待加载导入坐标 3.处理xml文件和其他 导入tomcat 运…

迅为RK3568开发板编译Android12源码包-设置屏幕配置

在源码编译之前首先要确定自己想要使用的屏幕并修改源码&#xff0c;在编译镜像&#xff0c;烧写镜像。如下图所示&#xff1a; 第一步&#xff1a;确定要使用的屏幕种类&#xff0c;屏幕种类选择如下所示&#xff1a; iTOP-3568 开发板支持以下种类屏幕&#xff1a; 迅为 LV…

机器学习-感知机-神经网络-激活函数-正反向传播-梯度消失-dropout

文章目录 感知机工作流程 神经网络区别各种各样的神经网络 激活函数激活函数类型Sigmoid 函数ReLU函数Leaky ReLU 函数Tanh 函数 正向传播反向传播梯度消失(gradient vanish)如何解决 Dropout使用 PyTorch实战神经网络算法(手写MNIST数字识别)viewsoftmax和log-softmaxcross-en…

Android使用JAVA调用JNI原生C++方法

1.native-lib.cpp为要生成so库的源码文件 2.JNI函数声明说明 NewStringUTF函数会返回jstring JNI函数声明规则 3.JAVA中声明及调用JNI函数 声明&#xff1a; 调用 4.源码地址&#xff1a; gitgithub.com:tonyimax/UpdateTimeByThread.git

【git】git stash相关指令

目录 git stashgit stash save “”git stash list&#xff1a; 获取stash列表git stash pop&#xff1a;恢复最近一次stash缓存git stash apply stash{index}: 恢复指定缓存在这里插入图片描述git stash drop stash{1}&#xff1a;删除指定缓存 git stash clear :删除stash gi…