Oracle 数据库基线安全加固操作
目录
账号管理、认证授权 ELK-Oracle-01-01-01
ELK-Oracle-01-01-02
ELK-Oracle-01-01-03
ELK-Oracle-01-01-04
ELK-Oracle-01-01-05
ELK-Oracle-01-01-06
ELK-Oracle-01-01-07
ELK-Oracle-01-01-08
口令 ELK-Oracle-01-02-01
ELK-Oracle-01-02-02
ELK-Oracle-01-02-03
ELK-Oracle-01-02-04
ELK-Oracle-01-02-05
日志配置 ELK-Oracle-02-01-01
ELK-Oracle-02-01-02
ELK-Oracle-02-01-03
ELK-Oracle-02-01-04
通信协议 ELK-Oracle-03-01-01
ELK-Oracle-03-01-02
设备其他安全要求 ELK-Oracle-04-01-01
ELK-Oracle-04-01-02
账号管理、认证授权 ELK-Oracle-01-01-01
编号 | ELK-Oracle-01-01-01 |
名称 | 为不同的管理员分配不同的账号 |
实施目的 | 应按照用户分配账号,避免不同用户间共享账号,提高安全性。 |
问题影响 | 账号混淆,权限不明确,存在用户越权使用的可能。 |
系统当前状态 | select * from all_users; select * from dba_users; 记录用户列表 |
实施步骤 | 1、参考配置操作 create user abc1 identified by password1; create user abc2 identified by password2; 建立role,并给role授权,把role赋给不同的用户
1、abc1和abc2是两个不同的账号名称,可根据不同用户,取不同的名称; |
回退方案 | 删除用户:例如创建了一个用户 A,要删除它可以这样做 connect sys/密码 as sysdba; drop user A cascade;//就这样用户就被删除了 |
判断依据 | 标记用户用途,定期建立用户列表,比较是否有非法用户 |
实施风险 | 高 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-01-01-02
编号 | ELK-Oracle-01-01-02 |
名称 | 删除或锁定无效账号 |
实施目的 | 删除或锁定无效的账号,减少系统安全隐患。 |
问题影响 | 允许非法利用系统默认账号 |
系统当前状态 | select * from all_users; select * from dba_users; 记录用户列表 |
实施步骤 | 1、参考配置操作 alter user username lock;//锁定用户 drop user username cascade;//删除用户 |
回退方案 | 删除新增加的帐户 |
判断依据 | 首先锁定不需要的用户 在经过一段时间后,确认该用户对业务确无影响的情况下,可以删除 |
实施风险 | 高 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-01-01-03
编号 | ELK-Oracle-01-01-03 |
名称 | 限制超级管理员远程登录 |
实施目的 | 限制具备数据库超级管理员(SYSDBA)权限的用户远程登录。。 |
问题影响 | 允许数据库超级管理员远程非法登陆 |
系统当前状态 | 查看spfile,sqlnet.ora内容 |
实施步骤 | 1、参考配置操作 在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。在sqlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=NONE来禁用 SYSDBA 角色的自动登录。 |
回退方案 | 还原spfile,sqlnet.ora文件配置 |
判断依据 | 判定条件 1. 不能通过Sql*Net远程以SYSDBA用户连接到数据库。 2. 在数据库主机上以sqlplus ‘/as sysdba’连接到数据库需要输入口令。 检测操作 1. 以Oracle用户登陆到系统中。 2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。 3. 使用show parameter命令来检查参数REMOTE_LOGIN_PASSWORDFILE是否设置为NONE。 Show parameter REMOTE_LOGIN_PASSWORDFILE 4. 检查在 $ORACLE_HOME/network/admin/sqlnet.ora文件中参数SQLNET.AUTHENTICATION_SERVICES是否被设置成NONE。 |
实施风险 | 高 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-01-01-04
编号 | ELK-Oracle-01-01-04 |
名称 | 权限最小化 |
实施目的 | 在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。 |
问题影响 | 账号权限越大,对系统的威胁性越高 |
系统当前状态 | select * from user_sys_privs; select * from user_role_privs; select * from user_tab_privs; 记录用户拥有权限 |
实施步骤 |
grant 权限 to username; revoke 权限 from username;
用第一条命令给用户赋相应的最小权限 用第二条命令收回用户多余的权限 |
回退方案 | 还原添加或删除的权限 |
判断依据 | 业务测试正常 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-01-05
编号 | ELK-Oracle-01-01-05 |
名称 | 数据库角色 |
实施目的 | 使用数据库角色(ROLE)来管理对象的权限。 |
问题影响 | 账号管理混乱 |
系统当前状态 | select * from dba_role_privs; 记录用户拥有的role |
实施步骤 | 一.创建角色,修改角色 1.创建角色,不指定密码: create role testrole; 2.创建角色,指定密码: create role testrole identified by passwd; 3.修改角色: alter role testrole identified by passwd; 4. 给角色授予权限。 Grant select on Table_name to testrole; 把角色赋予用户:(特别说明,授予角色不是实时的。如下:) grant testrole to User_Name; 二、起用角色:给用户赋予角色,角色并不会立即起作用。 1.角色不能立即起作用。必须下次断开此次连接,下次连接才能起作用。 2.或者执行命令:有密码的角色set role testrole identified by passwd 立即生效; 3.无密码的角色:set role testrole; |
回退方案 | 删除相应的Role revoke role_name from user_name |
判断依据 | 对应用用户不要赋予DBA Role或不必要的权限 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-01-06
编号 | ELK-Oracle-01-01-06 |
名称 | 用户profile |
实施目的 | 对用户的属性进行控制,包括密码策略、资源限制等。 |
问题影响 | 账号安全性低. |
系统当前状态 | SELECT profile FROM dba_users WHERE username=’user_name’; 记录用户赋予的profile |
实施步骤 | 可通过下面类似命令来创建profile,并把它赋予一个用户 SQL> show parameter resource_limit SQL> alter system set resource_limit=true; CREATE PROFILE profile_name LIMIT FAILED_LOGIN_ATTEMPTS 6 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 60 PASSWORD_REUSE_MAX 5 PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 90; ALTER USER user_name PROFILE profile_name; |
回退方案 | alter user dinya profile default; 恢复默认 |
判断依据 | 1. 可通过设置profile来限制数据库账户口令的复杂程度,口令生存周期和账户的锁定方式等。 2. 可通过设置profile来限制数据库账户的CPU资源占用。 4、检测操作 1. 以DBA用户登陆到sqlplus中。 2. 查询视图dba_profiles和dba_usres来检查profile是否创建。 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-01-07
编号 | ELK-Oracle-01-01-07 |
名称 | 数据字典保护 |
实施目的 | 启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表。 |
问题影响 | 数据库安全性低. |
系统当前状态 | Show parameter O7_DICTIONARY_ACCESSIBILITY 记录当前状态 |
实施步骤 | 通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典。 alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile; |
回退方案 | 修改O7_DICTIONARY_ACCESSIBILITY为原来属性 |
判断依据 | 以普通用户登陆到数据库,不能查看X$开头的表,比如: select * from sys. x$ksppi; 检测操作 1. 以Oracle用户登陆到系统中。 2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。 3. 使用show parameter命令来检查参数O7_DICTIONARY_ACCESSIBILITY是否设置为FALSE。 Show parameter O7_DICTIONARY_ACCESSIBILITY |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-01-08
编号 | ELK-Oracle-01-01-08 |
名称 | 检查DBA组用户 |
实施目的 | 限制在DBA组中的操作系统用户数量,通常DBA组中只有Oracle安装用户。 |
问题影响 | 影响组用户管理 |
系统当前状态 | Cat /etc/passwd |
实施步骤 | 参考配置操作 通过/etc/passwd文件来检查是否有其它用户在DBA组中。 删除用户:#userdel username; 锁定用户: 1) 修改/etc/shadow文件,用户名后加*LK* 2) 将/etc/passwd文件中的shell域设置成/bin/false 3) #passwd -l username 只有具备超级用户权限的使用者方可使用,#passwd -l username锁定用户,用#passwd –d username解锁后原有密码失效,登录需输入新密码,修改/etc/shadow能保留原有密码。 |
回退方案 | 还原/etc/passwd文件 |
判断依据 | 判定条件 无其它用户属于DBA组。 检测操作 通过/etc/passwd文件来检查是否有其它用户在DBA组中。 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
口令 ELK-Oracle-01-02-01
编号 | ELK-Oracle-01-02-01 |
名称 | 缺省密码长度复杂度限制 |
实施目的 | 对于采用静态口令进行认证的数据库,口令长度至少6位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
问题影响 | 增加密码被暴力破解的成功率 |
系统当前状态 | SELECT profile FROM dba_users WHERE username=’user_name’; 记录用户赋予的profile |
实施步骤 | 1、参考配置操作 为用户建profile,调整PASSWORD_VERIFY_FUNCTION,指定密码复杂度 示例: SQL>CREATE OR REPLACE FUNCTION my_password_verify (username VARCHAR2 ,password VARCHAR2 ,old_password VARCHAR2 ) RETURN BOOLEAN IS 2 BEGIN 3 IF LENGTH(password) < 6 THEN 4 raise_application_error(-20001,''Password must be at least 6 characters long''); 5 END IF; 6 RETURN(TRUE); 7 END; SQL> create profile TEST_PROFILE limit |
回退方案 | alter user user_name profile default; |
判断依据 |
修改密码为不符合要求的密码,将失败
alter user user_name identified by passwd;将失败 |
实施风险 | 低 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-01-02-02
编号 | ELK-Oracle-01-02-02 |
名称 | 缺省密码生存周期限制 |
实施目的 | 对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天,减少口令安全隐患。 |
问题影响 | 密码被非法利用,并且难以管理 |
系统当前状态 | SELECT profile FROM dba_users WHERE username=’user_name’; 记录用户赋予的profile |
实施步骤 |
为用户建相关profile,指定PASSWORD_GRACE_TIME为90天
在90天内,需要修改密码 |
回退方案 | alter user user_name profile default; |
判断依据 |
到期不修改密码,密码将会失效。连接数据库将不会成功
connect username/password报错 |
实施风险 | 低 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-01-02-03
编号 | ELK-Oracle-01-02-03 |
名称 | 密码重复使用限制 |
实施目的 | 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。 |
问题影响 | 密码破解的几率增加 |
系统当前状态 | SELECT profile FROM dba_users WHERE username=’user_name’; 记录用户赋予的profile |
实施步骤 |
为用户建profile,指定PASSWORD_REUSE_MAX为5
当前使用的密码,必需在密码修改5次后才能再次被使用 |
回退方案 | alter user user_name profile default; |
判断依据 |
重用修改5次内的密码,将不能成功
alter user username identified by password1;如果password1在5次修改密码内被使用,该操作将不能成功 |
实施风险 | 低 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-02-04
编号 | ELK-Oracle-01-02-04 |
名称 | 密码重试限制 |
实施目的 | 对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。 |
问题影响 | 允许暴力破解密码 |
系统当前状态 | SELECT profile FROM dba_users WHERE username=’user_name’; 记录用户赋予的profile |
实施步骤 |
为用户建profile,指定FAILED_LOGIN_ATTEMPTS为6
如果连续6次连接该用户不成功,用户将被锁定 |
回退方案 | alter user user_name profile default; |
判断依据 |
连续6次用错误的密码连接用户,第7次时用户将被锁定
connect username/password,连续6次失败,用户被锁定 |
实施风险 | 中 |
重要等级 | ★ |
备注 |
ELK-Oracle-01-02-05
编号 | ELK-Oracle-01-02-05 |
名称 | 修改默认密码 |
实施目的 | 更改数据库默认帐号的密码。 |
问题影响 | 可能被破解密码 |
系统当前状态 | 询问管理员账号密码,并记录 |
实施步骤 | 参考配置操作 1. 可通过下面命令来更改默认用户的密码: ALTER USER user_name IDENTIFIED BY passwd; 2. 下面是默认用户密码列表: CTXSYS CTXSYS DBSNMP DBSNMP LBACSYS LBACSYSMDDATA MDDATA MDSYS MDSYS DMSYS DMSYS OLAPSYS MANAGER ORDPLUGINS ORDPLUGINS ORDSYS ORDSYS OUTLN OUTLN SI_INFORMTN_SCHEMA SI_INFORMTN_SCHEMA SYS CHANGE_ON_INSTALL SYSMAN CHANGE_ON_INSTALL SYSTEM MANAGER |
回退方案 | ALTER USER user_name IDENTIFIED BY passwd; |
判断依据 | 判定条件 不能以用户名作为密码或使用默认密码的账户登陆到数据库。 检测操作 1. 以DBA用户登陆到sqlplus中。 2. 检查数据库默认账户是否使用了用户名作为密码或默认密码。 |
实施风险 | 中 |
重要等级 | ★ |
备注 |
日志配置 ELK-Oracle-02-01-01
编号 | ELK-Oracle-02-01-01 |
名称 | 启用日志记录功能 |
实施目的 | 数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。 |
问题影响 | 无法对用户的登陆进行日志记录 |
系统当前状态 | |
实施步骤 | create table login_log -- 登入登出信息表 ( session_id int not null, -- sessionid login_on_time date, -- 登入时间 login_off_time date, -- 登出时间 user_in_db varchar2(30), -- 登入的db user machine varchar2(20), -- 机器名 ip_address varchar2(20), -- ip地址 run_program varchar2(20) -- 以何程序登入 ); create or replace trigger login_on_info -- 记录登入信息的触发器 after logon on database Begin insert into login_log(session_id,login_on_time,login_of f_time,user_in_db,machine,ip_address,run_program) select AUDSID,sysdate,null,sys.login_user,machine,SYS_CO NTEXT('USERENV','IP_ADDRESS'),program from v$session where AUDSID = USERENV('SESSIONID'); --當前SESSION END; create or replace trigger login_off_info -- 记录登出信息的触发器 before logoff on database Begin update login_log set login_off_time = sysdate where session_id = USERENV('SESSIONID'); --当前SESSION exception when others then null; END; |
回退方案 | ALTER TRIGGER 名称 DISABLE; |
判断依据 | 判定条件 登录测试,检查相关信息是否被记录 补充说明 触发器与AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大。 |
实施风险 | 低 |
重要等级 | ★★★ |
备注 |
ELK-Oracle-02-01-02
编号 | ELK-Oracle-02-01-02 |
名称 | 记录用户对设备的操作 |
实施目的 | 数据库应配置日志功能,记录用户对数据库的操作 |
问题影响 | 无法对用户的操作进行日志记录 |
系统当前状态 | |
实施步骤 | create table employees_log( who varchar2(30), action varchar2(20)); when date); create or replace trigger biud_employ_copy before insert or update or delete on employees_copy declare l_action employees_log.action%type; begin if inserting then l_action:='insert'; elsif updating then l_action:='delete'; elsif deleting then l_action:='update'; else raise_application_error(-2001,'you shoule never ever get this error.'); end if; insert into employees_log(who,action,when) values(user,l_action,sysdate); end biud_employ_copy; |
回退方案 | ALTER TRIGGER 名称 DISABLE; |
判断依据 | |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-02-01-03
编号 | ELK-Oracle-02-01-03 |
名称 | 记录系统安全事件 |
实施目的 | 通过设置让系统记录安全事件,方便管理员分析 |
问题影响 | 无法记录系统的各种安全事件 |
系统当前状态 | |
实施步骤 | 参考配置操作 create table jax_event_table(eventname varchar2(30),time date); create trigger tr_startup after startup ondatabase begin insertinto jax_event_table values(ora_sysevent,sysdate); end; create trigger tr_shutdown beforeshutdownondatabase begin insertinto jax_event_table values(ora_sysevent,sysdate); end; |
回退方案 | ALTER TRIGGER 名称 DISABLE; |
判断依据 | 记录系统安全事件 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
ELK-Oracle-02-01-04
编号 | ELK-Oracle-02-01-04 |
名称 | 数据库审计策略 |
实施目的 | 根据业务要求制定数据库审计策略 |
问题影响 | 日志被删除后无法恢复。 |
系统当前状态 | show parameter audit_sys_operations; show parameter audit_trail; 查看返回值,并记录. |
实施步骤 | 1、参考配置操作 SQL> alter system set audit_sys_operations=TRUE scope=spfile; SQL> alter system set audit_trail=db scope=spfile; SQL> show parameter audit; SQL> audit all on table_name; |
回退方案 | noaudit all on table_name; 恢复audit_sys_operations, audit_trail属性 |
判断依据 | 判定条件 对审计的对象进行一次数据库操作,检查操作是否被记录。 检测操作 1. 检查初始化参数audit_trail是否设置。 2. 检查dba_audit_trail视图中或$ORACLE_BASE/admin/adump目录下是否有数据。 补充说明 AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大 |
实施风险 | 低 |
重要等级 | ★ |
备注 |
通信协议 ELK-Oracle-03-01-01
编号 | ELK-Oracle-03-01-01 |
名称 | 信任IP连接监听器 |
实施目的 | 设置只有信任的IP地址才能通过监听器访问数据库。 |
问题影响 | 数据库不安全IP访问 |
系统当前状态 | 查看$ORACLE_HOME/network/admin/sqlnet.ora |
实施步骤 | 参考配置操作 只需在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行: tcp.validnode_checking = yes tcp.invited_nodes = (ip1,ip2…) |
回退方案 | 还原$ORACLE_HOME/network/admin/sqlnet.ora文件 |
判断依据 | 判定条件 在非信任的客户端以数据库账户登陆被提示拒绝。 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora文件中是否设置参数tcp.validnode_checking和tcp.invited_nodes。 |
实施风险 | 高 |
重要等级 | ★★ |
备注 |
ELK-Oracle-03-01-02
编号 | ELK-Oracle-03-01-02 |
名称 | 网络数据传输安全 |
实施目的 | 使用Oracle提供的高级安全选件来加密客户端与数据库之间或中间件与数据库之间的网络传输数据 |
问题影响 | 数据传输的不安全性增加 |
系统当前状态 | 记录检查 $ORACLE_HOME/network/admin/sqlnet.ora文件 |
实施步骤 | 参考配置操作 1. 在Oracle Net Manager中选择“Oracle Advanced Security”。 2. 然后选择Encryption。 3. 选择Client或Server选项。 4. 选择加密类型。 5. 输入加密种子(可选)。 6. 选择加密算法(可选)。 7. 保存网络配置,sqlnet.ora被更新。 |
回退方案 | 还原$ORACLE_HOME/network/admin/sqlnet.ora文件 |
判断依据 | 判定条件 通过网络层捕获的数据库传输包为加密包。 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora文件中是否设置sqlnet.encryption等参数 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
设备其他安全要求 ELK-Oracle-04-01-01
编号 | ELK-Oracle-04-01-01 |
名称 | 监听器密码 |
实施目的 | 为数据库监听器(LISTENER)的关闭和启动设置密码。 |
问题影响 | 增加数据库安全隐患 |
系统当前状态 | 查看$ORACLE_HOME/network/admin/listener.ora文件中参数PASSWORDS_LISTENER值 |
实施步骤 | 参考配置操作 $ lsnrctl LSNRCTL> change_password Old password: <OldPassword> Not displayed New password: <NewPassword> Not displayed Reenter new password: <NewPassword> Not displayed Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(H OST=prolin1)(PORT=1521)(IP=FIRST))) Password changed for LISTENER The command completed successfully LSNRCTL> save_config |
回退方案 | set password 取消密码 |
判断依据 | 判定条件 使用lsnrctl start或lsnrctl stop命令起停listener需要密码 检测操作 检查$ORACLE_HOME/network/admin/listener.ora文件中是否设置参数PASSWORDS_LISTENER。 |
实施风险 | 高 |
重要等级 | ★★ |
备注 |
ELK-Oracle-04-01-02
编号 | ELK-Oracle-04-01-02 |
名称 | 连接超时限制 |
实施目的 | 在某些应用环境下可设置数据库连接超时,比如数据库将自动断开超过10分钟的空闲远程连接。 |
问题影响 | 空闲远程连接无法断开 |
系统当前状态 | 记录检查 $ORACLE_HOME/network/admin/sqlnet.ora文件 |
实施步骤 | 参考配置操作 在sqlnet.ora中设置下面参数: SQLNET.EXPIRE_TIME=10 |
回退方案 | 还原$ORACLE_HOME/network/admin/sqlnet.ora文件 |
判断依据 | 判定条件 10分钟以上的无任何操作的空闲数据库连接被自动断开 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora文件中是否设置参数SQLNET.EXPIRE_TIME。 |
实施风险 | 高 |
重要等级 | ★ |
备注 |
相关文章:
Oracle 数据库基线安全加固操作
目录 账号管理、认证授权 ELK-Oracle-01-01-01 ELK-Oracle-01-01-02 ELK-Oracle-01-01-03 ELK-Oracle-01-01-04 ELK-Oracle-01-01-05 ELK-Oracle-01-01-06 ELK-Oracle-01-01-07 …...

安装最新版WebStorm来开发JavaScript应用程序
安装最新版WebStorm来开发JavaScript应用程序 Install the Latest Version of JetBrains WebStorm to Develop JavaScript Applications By JacksonML 2023-11-25 1. 系统要求 WebStorm是个跨平台集成开发环境(IDE)。按照JetBrains官网对WebStorm软件…...

python opencv 放射变换和图像缩放-实现图像平移旋转缩放
python opencv 放射变换和图像缩放-实现图像平移旋转缩放 我们实现这次实验主要用到cv2.resize和cv2.warpAffine cv2.warpAffine主要是传入一个图像矩阵,一个M矩阵,输出一个dst结果矩阵,计算公式如下: cv2.resize则主要使用fx&…...
安装Anaconda、PyTorch(GPU版)库与PyCharm】
【Python深度学习:安装Anaconda、PyTorch(GPU版)库与PyCharm】https://www.bilibili.com/video/BV1cD4y1H7Tk?vd_source0aeb782d0b9c2e6b0e0cdea3e2121ebadownload.pytorch.org/whl/torchaudio/更改Jupyter Notebook的默认路径,亲…...

关于pytorch以及相关包的安装教程
一.查看自己电脑的配置 首先查看自己电脑的cuda的版本,WinR,敲入cmd打开终端 输入nvidia-smi,查看自己电脑的显卡等配置 这里要说明一下关于这个CUDA,它具有向后兼容性,这意味着支持较低版本的 CUDA 的应用程序通常也可以在较高版本的 CUD…...

AnalyticDB for PostgreSQL 实时数据仓库上手指南
AnalyticDB for PostgreSQL 实时数据仓库上手指南 2019-04-016601 版权 本文涉及的产品 云原生数据仓库 ADB PostgreSQL,4核16G 50GB 1个月 推荐场景: 构建的企业专属Chatbot 立即试用 简介: AnalyticDB for PostgreSQL 提供企业级数…...

【数据结构】堆(C语言)
今天我们来学习堆,它也是二叉树的一种(我滴神树!) 目录 堆的介绍:堆的代码实现:堆的结构体创建:堆的初始化:堆的销毁:堆的push:堆的pop:判空 &am…...
使用 Raspberry Pi、Golang 和 HERE XYZ 制作实时地图
到目前为止,您可能已经看过我的一些与 Raspberry Pi 和位置数据相关的教程。我是这些小型物联网 (IoT) 设备的忠实粉丝,并编写了有关使用 Golang 进行 WLAN 定位 和 使用 Node.js 进行 GPS 定位的教程。 我想继续沿着 Golang 路线,做一个关于…...
贪吃蛇(c实现)(真的超级超级简单)
1.代码请看贪吃蛇c实现 王赫辰/c语言 - 码云 - 开源中国 (gitee.com) 2.本项目宗旨: 1.不引入复杂的库函数(其他博主的全是陌生库函数看不懂?看我就对了!◕‿◕) 2.不使用c语法 (都说了c实现,…...

linux 内存回收mglru算法代码注释2
mglru与原lru算法的兼容 旧的lru算法有active与inactive两代lru,可参考linux 内存回收代码注释(未实现多代lru版本)-CSDN博客 新的算法在引入4代lru的同时,还引入了tier的概念。 新旧算法的切换的实现在lru_gen_change_state&a…...

Exchange意外登录日志
最近在审计Exchange邮件系统的时候,发现大量用户半夜登录的日志。而且都是成功的,几乎没有失败的情况。其中Logon Type 8表示用户从网络登录。 Logon type 8: NetworkCleartext. A user logged on to this computer from the network. The user’s pas…...

NX二次开发UF_CURVE_ask_curve_turn_angle 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_turn_angle Defined in: uf_curve.h int UF_CURVE_ask_curve_turn_angle(tag_t curve, double orientation [ 3 ] , double * angle ) overview 概述 Returns …...

UE 进阶篇一:动画系统
导语: 下面的动画部分功能比较全,可以参考这种实现方式,根据自己项目的颗粒度选择部分功能参考,我们商业项目动画部分也是这么实现的。 最后实现的效果如下: 最终效果 目录: ------------------------------------------- 文末有视频教程/工程地址链接 -------------…...
超文本传输协议
超文本传输协议(HypertextTransfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容…...
『heqingchun-Ubuntu系统+x86架构+编译安装ffmpeg+带有nvidia硬件加速』
Ubuntu系统x86架构编译安装ffmpeg带有nvidia硬件加速 一、准备文件 注:可直接下载我上传的CSDN资源,然后直接跳到"一"中的第"3"项"将文件按以下顺序存放"。 ffmpeg源码:音视频开发ffmpeg编译所需资源文件 其…...

UE5 UI教程学习笔记
参考资料:https://item.taobao.com/item.htm?spma21n57.1.0.0.2b4f523cAV5i43&id716635137219&ns1&abbucket15#detail 基础工程:https://download.csdn.net/download/qq_17523181/88559312 1. 介绍 工程素材 2. 创建Widget UE5 UI系统的…...

Leetcode:622. 设计循环队列 题解【具详细】
目录 一、题目: 二、思路详解: 1.循环队列的存储定义 2.循环队列的创建 3.循环队列的判空与判断情况 (1) 循环队列的判空: (2) 循环队列的判满 4.循环队列元素的插入 5.循环队列元素的删除 6.获取队头元素 7.获取队尾元素 8.循环队列释放 三…...
ArkTS基础知识 【习题】
判断题 1.循环渲染ForEach可以从数据源中迭代获取数据,并为每个数组项创建相应的组件。 正确(True) 2. Link变量不能在组件内部进行初始化。 正确(True) 单选题 1.用哪一种装饰器修饰的struct表示该结构体具有组件化能力?(A) A. Component B. Entry C…...

是否有无限提取的代理IP?作为技术你需要知道这些
最近有互联网行业的技术小伙伴问到,有没有可以无限提取的代理IP?就是比如我一秒钟提取几万、几十万次,或者很多台机器同时调用API提取链接,这样可以吗?看到这个问题,不禁沉思起来,其实理论上是存…...

【算法萌新闯力扣】:卡牌分组
力扣热题:卡牌分组 一、开篇 今天是备战蓝桥杯的第22天。这道题触及到我好几个知识盲区,以前欠下的债这道题一并补齐,哈希表的遍历、最大公约数与最小公倍数,如果你还没掌握,这道题练起来! 二、题目链接:…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...