当前位置: 首页 > news >正文

Oracle架构之用户,权限,角色讲解

文章目录

  • 1 用户
    • 1.1 简介
      • 1.1.1 定义
      • 1.1.2 用户相关信息
        • 1.1.2.1 用户默认表空间
        • 1.1.2.2 用户临时表空间
        • 1.1.2.3 用户资源文件
        • 1.1.2.4 用户表空间限额
        • 1.1.2.5 用户管理有关的数据字典
      • 1.1.3 用户、模式、模式对象
      • 1.1.4 实例模式 SCOTT
      • 1.1.5 各个角色区别
    • 1.2 用户管理
      • 1.2.1 创建用户
      • 1.2.2 修改用户
      • 1.2.3 用户监控
      • 1.2.4 删除用户
    • 1.3 账户管理
      • 1.3.1 限制 dba 用户远程登录
      • 1.3.2 用户最小权限原则
      • 1.3.3 数据字典保护
  • 2 权限
    • 2.1 简介
    • 2.2 权限分类
      • 2.2.1 系统权限管理
        • 2.2.1.1 系统权限分类
        • 2.2.1.2 系统权限操作
      • 2.2.2 实体权限管理
    • 2.3 查询用户权限
  • 3 角色
    • 3.1 系统预定义角色
    • 3.2 管理角色
      • 3.2.1 一般操作
      • 3.2.2 为角色添加或删除口令
      • 3.2.3 设置当前用户要生效的角色
      • 3.2.4 默认角色/删除角色

1 用户

​在 Oracle 数据库中,为了便于管理用户所创建的数据库对象(比如数据表、索引、视图等),引入了模式的概念,这样某个用户所创建的数据库对象就都属于该用户模式。

1.1 简介

1.1.1 定义

Oracle 用户(user)就是访问 oracle 数据库的人。通过对用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、数据库审计等。当用户登录 Oracle 时需要进行身份认证,以便确认该用户能够进行的操作。

认证是指对需要使用数据、资源或应用程序的用户进行身份确认。通过认证后,可以为用户后面的数据库操作提供一种可靠的连接关系。Oracle 提供了多种身份认证方式:操作系统身份认证,Oracle 数据库身份认证,管理员身份认证。

  • 操作系统身份认证:主要对登录操作系统的用户的合法身份进行认证。如:sqlplus / as sysdba
  • Oracle 数据库身份认证:使用存储在数据库中的信息对试图连接数据库的用户进行身份认证。在用户连接数据库时,必须提供正确的用户名和密码,才能登录到 Oracle 数据库。
  • 数据库管理员(DBA)认证:DBA 拥有最高的管理权限,可以执行一些特殊的操作,比如关闭或启动数据库。

1.1.2 用户相关信息

1.1.2.1 用户默认表空间

表空间是信息存储的最大逻辑单位、当用户连接到数据库时,若未指出数据的目标存储表空间时,则数据存储在用户的默认表空间中。用户的默认表空间可以在创建用户时指定,也可以使用 aler user 命令指定。如果创建用户时不指定默认表空间,则普通用户的默认空间为 users,sys 用户的默认表空间为 system,可以通过 dba_users 查看(all_users 的信息要比 dba_users 少)。

1.1.2.2 用户临时表空间

临时表空间用来管理数据库排序操作以及用于存储临时表中间排序结果等临时对象。当 ORACLE 需要用到排序时,并且 PGA 中 sort_area_size 大小不足时,将会把数据放入临时表空间里进行排序。如果创建用户时,不指定默认的临时表空间,则默认临时表空间为 temp。

1.1.2.3 用户资源文件

用户资源文件用来对用户的资源存取进行限制,防止非正常连接数据库。包括:cpu 使用时间限制、内存逻辑读个数限制、每个用户同时可以连接的会话数限制、一个会话的空间和时间限制、一个会话的持续时间限制、每次会话的专用 SGA 空间限制。

创建资源文件命令如下:

create profile profile_name limit 参数 ...;资源文件的参数如下:
connect_time:指定一个会话能保持连接到数据库的总时间
cpu_per_call:限制事务内每个调用使用CPU的时间。
cpu_per_sessin:限制每个会话内使用CPU的时间。
sessions_per_time:限制用户可以打开并发的最大会话数。
idle_time:限制用户的最大空闲时间。
logical_reads_per_session:限制数据块读取的总数目。
logical_reads_per_call:限制每个会话调用总的逻辑读取数。
private_sga:指定一个在SGA的共享池组件中分配的空间限额(仅适用于共享服务器)。composite_limit:对资源设置使用一个总的限制。Oracle考虑用四个参数来计算加权的composite_limit。分别为:cpu_per_session, logical_reads_per_sessions, connect_time, private_sga。可以使用 alter resource cost来设置.。密码类:
failed_login_attempts:指用户被锁之前可以尝试的最大登录数。
password_life_time:指定使用特定密码的时间限制,如果超出此时间间隔,那么密码将过期。
password_grace_time:设置一个时间段,在此时间段内将发出一个密码过期警告。
password_lock_time:设置用户被锁定的天数,过了此天数,用户将自行解锁。
password_reuse_time:指定重新使用密码要经过多少天。
password_reuse_max:指定重新使用某个特定密码前,要经过多少次修改。
passwrod_verify_function:此参数允许指定Oracle提供的密码验证函数来建立自动密码验证。

为用户指定资源文件:alter user user_name profile rofile_name;

1.1.2.4 用户表空间限额

配额大小指的是用户指定使用表空间的的大小,默认情况下用户没有配额限制。在创建或修改用户时,可以由参数 quota 指定。若用户在向表空间存储数据时,超出了此限额,则会产生错误。错误信息如:ORA-01536:space quota exceeded for tablespace tablespacename…

通过查询字典 dba_ts_quotas 查看表空间限额信息:

SQL> select tablespace_name, username, bytes/1024/1024 size_MB, max_bytes from dba_ts_quotas;
1.1.2.5 用户管理有关的数据字典

Oracle 和用户管理相关的数据字典主要有三个:DBA_USERS、USER_USERS、ALL_USERS:

  • DBA_USERS:该数据字典用于查询 Oracle 的所有用户信息
  • ALL_USERS:该数据字典用来查询所有用户的信息,但是能够查询的信息比 DBA_USERS 要少得多
  • USER_USERS:该数据字典用来查询当前用户的信息

1.1.3 用户、模式、模式对象

用户、模式、模式对象区别:

  • 用户:这里的用户并不是指数据库的操作人员,而是数据库中定义的一个名称,更准确地说它是账户,只是习惯上称其为用户。也可以说用户是用来连接数据库和访问数据库对象的。
  • 模式:在oracle中,为了便于管理用户所创建的数据库对象,引入了模式概念。模式是一个数据库对象的集合。模式为一个数据库用户所拥有,并且具有与该用户相同的名称
  • 模式对象:由用户创建的逻辑结构,用以存储或引用数据,其实就是指数据库对象

用户与模式区别:

  • 用户是连接数据库对象
  • 模式是管理数据库对象的
  • 用户与模式在oracle中是一对一关系

模式与模式对象:

  • 模式是一个数据库对象的集合。模式为一个数据库用户所有,并且具有与该用户相同的名称,比如SYSTEM模式SCOTT模式等。在一个模式内部不可以直接访问其他模式的数据库对象,即使在具有访问权限的情况下,也需要指定模式名称才可以访问其他模式的数据库对象。
  • 模式对象是由用户创建的逻辑结构,用以存储或引用数据。简单地说,模式与模式对象之间的关系就是拥有与被拥有的关系,即模式拥有模式对象;而模式对象被模式所拥有。

1.1.4 实例模式 SCOTT

Oracle 提供的 SCOTT 模式的目的,就是为了给用户提供一些实例表和数据来展示 Oracle 数据库的一些特性,通过连接到 SCOTT 用户模式,查询数据字典视图 USER_TABLES 可以获得该模式所包含的数据表,共计 4 个。
另外,用户也可以在 SYSTEM 模式下查询 SCOTT 模式所拥有的数据表,但要求使用 dba_tables数据表。

1.1.5 各个角色区别

sys和system用户的区别:

  • system:用户具有DBA权限,但是没有SYSDBA权限,用户只能用normal身份登陆。system是数据库内置的一个普通管理员,手工创建的任何用户在被授予dba角色后都跟这个用户差不多。
  • sys:用户具有SYSDBA或者SYSOPER权限,登陆也只能用这两个身份,不能用normal。SYS用户具有DBA权限,并具有SYS模式。只能通过SYSDBA登录数据库,是Oracle数据库中权限最高的帐号

normal 、sysdba、 sysoper 区别:

  • normal:是普通用户,登录后任然是登录名(show user命令)
  • sysdba:拥有最高的系统权限,sysdba登陆后是 sys (show user命令)
  • sysoper:主要用来启动、关闭数据库,sysoper 登陆后用户是 public(show user命令)

SYSOPER权限,即数据库操作员权限,权限包括:

  • 打开数据库服务器;关闭数据库服务器
  • 备份数据库;恢复数据库
  • 日志归档 ;会话限制

SYSDBA权限,即数据库管理员权限,权限包括:

  • 打开数据库服务器;关闭数据库服务器
  • 备份数据库;恢复数据库
  • 日志归档 ;会话限制
  • 管理功能; 创建数据库

1.2 用户管理

Oracle数据库中任何对象都属于一个特定用户, 用户的创建、删除、授权管理相关操作需要具备dba(数据库管理员)权限。

1.2.1 创建用户

创建用户的语法如下:

CREATE USER user_name
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace_name
TEMPORARY TABLESPACE tablespace_name
PROFILE profile_name QUOTA integer|UNLIMITED ON tablespace;

说明:

  • IDENTIFIED BY password:用户口令
  • DEFAULT TABLESPACE tablespace:默认表空间。如果不指定,默认空间为 users
  • TEMPORARY TABLESPACE tablespace:临时表空间。如果不指定,默认为 temp
  • PROFILE profile|DEFAULT:用户资源文件;
  • QUOTA integer[K|M]|UNLIMITED ON tablespace:用户在表空间上的空间使用限额

查询用户的默认表空间

SQL> select username, default_tablespace, temporary_tablespace from dba_users  where username = 'WGX';查询用户 wgx 的资源文件名
select username,profile from dba_users where username='WGX';

1.2.2 修改用户

修改用户的语法如下

该命令各部分参数的含义与 create user 完全相同
Alter User user_name
Identified by password
Default Tablespace tablespace_name
Temporary Tablespace tablespace_name
Profile profile_name
Quota integer/unlimited on tablespace;

修改相关sql

修改用户 wgx 的密码
SQL> alter user wgx identified by "WGX123456";
注:密码用双引号括起来修改用户 wgx 的默认表空间
SQL> alter user wgx default tablespace ts003;修改用户 wgx 的默认临时表空间
SQL> alter user wgx temporary tablespace temp03;修改用户 wgx 的资源文件
SQL> alter user wgx profile wgx_new_profile;查看用户 wgx 的信息
SQL> select username,default_tablespace,temporary_tablespace,profile from dba_users where username ='WGX';为用户 wgx 授予权限
SQL> grant connect,resource to wgx;
Grant succeeded.强制用户 wgx 修改密码
SQL> Alter user wgx password expire;
User altered.当用户 wgx 登录时强制要求修改密码
SQL> conn wgx/WGX123456
ERROR:
ORA-28001: the password has expired为用户加锁
SQL> alter user wgx account lock;
User altered.以 wgx 用户登录时显示用户被锁定
SQL> conn wgx
Enter password: 
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.为用户解锁
SQL> alter user wgx account unlock;
User altered.

1.2.3 用户监控

查询用户会话信息

SQL> select username, sid, serial#, machine from v$sessionwhere username = 'WGX';

删除用户会话信息

命令格式:
Alter system kill session 'sid, serial#';SQL> alter system kill session '34,73';
System altered.SQL> select username, sid, serial#,status, machine from gv$session where username ='WGX';

1.2.4 删除用户

删除用户的语法

drop user user_name [descade];

说明:如果要删除的用户包含对象,需要使用 descade 参数连同包含的对象一并删除

1.3 账户管理

1.3.1 限制 dba 用户远程登录

限制具备超级管理(sysdba)权限的用户远程登录。
设置初始化参数 remote_login_passwordfile=none,禁止 sysdba 用户远程登录

查看参数
SQL> show parameter remote_login_passwordfileSQL> alter system set remote_login_passwordfile=none scope=spfile sid='*';
System altered.--重启数据库,查看初始化参数 remote_login_passwordfile 的取值
SQL> show parameter remote_login_passwordfile

sqlnet.ora 中设置 SQLNET.AUTHENTICATION_SERVICES=NONE 禁止 sysdba 角色的自动登录

[grid@rac2 ~]$ cd $ORACLE_HOME/network/admin[grid@rac2 admin]$ vi sqlnet.ora
# sqlnet.ora.rac2 Network Configuration File: /u01/app/11.2.0/grid/network/admin/sqlnet.ora.rac2
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /u01/app/grid
SQLNET.AUTHENTICATION_SERVICES=NONE

1.3.2 用户最小权限原则

根据业务需要,为用户配置所需的最小权限。

--为用户赋予最小权限
grant 权限 to user_name;
--收回用户的多余权限
revoke 权限 from user_name;

1.3.3 数据字典保护

启用数据字典保护,只有 sysdba 用户才能访问数据字典表。设置初始化参数 O7_DICTIONARY_ACCESSIBILITY 为 false。

SQL> show parameter o7

2 权限

2.1 简介

权限是用户对一项功能的执行权力。每个 Oracle 用户都拥有一些由其创建的表、视图和其他资源。Oracle 系统提供三种权限:对象级(Object),系统级(System),角色级(Role)。

这些权限可以授予给用户、特殊用户 public 或 角色,如果授予一个权限给特殊用户 Public(用户 public 是 Oracle 预定义的,每个用户享有这个用户享有的权限),则意味作将该权限授予了该数据库的所有用户。

Oracle 角色(role)是一组权限(privilege)。可以给角色授予指定的权限,然后将角色赋给相应的用户。对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。

2.2 权限分类

Oracle 中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。

  • 系统权限:是指被授权用户是否可以连接到数据库上,在数据库中可以进行哪些系统操作。
  • 实体权限:是指用户对具体的模式实体(schema)所拥有的权限。

2.2.1 系统权限管理

2.2.1.1 系统权限分类

系统权限分类:

  • DBA:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构。
  • RESOURCE:拥有 Resource 权限的用户可以创建实体,不可以创建数据库结构。
  • CONNECT:拥有 Connect 权限的用户只可以登录 Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:可以授予 connect、resource 权限。
对于DBA 用户:授予 connect、resource、dba 权限。

2.2.1.2 系统权限操作
系统权限授权:系统权限授权,系统权限只能由 DBA 用户授出,命令如下:
grant connect, resource, dba to 用户名1 [,用户名2]...;查看系统权限:
使用DBA_SYS_PRIVS 查看系统权限
select * from dba_sys_privs where grantee='CONNECT';系统权限传递:
授予权限时使用 WITH ADMIN OPTION选项,则得到的权限可以传递,即用户可以把自己的系统再授予其他用户。
grant connect, resource, dba to white with admin option;系统权限回收:
系统权限无级联,即 A 授予 B 权限,B 授予 C 权限,如果 A 收回 B 的权限,C 的权限不受影响
Revoke connect, resource from 用户名1; 

2.2.2 实体权限管理

实体权限分类:select、update、insert、alter、index、delete、all、execute
DBA 用户可以操作全体用户的任意基表,无需授权。
使用 sys 账户为 white 用户和 black 用户创建表,并输入数据:

SQL> show user
USER is "SYS"
SQL> create table white.t1(x int,name varchar2(20));*
SQL> insert into white.t1 values(1,'white:t1');SQL> create table black.t22(x int,name varchar2(20));SQL> insert into black.t22 values(1,'black:t22');

授权相关

为 white 用户授予实体权限
SQL> grant select on scott.emp to white;

实体权限传递授权:授权时使用 with grant option 参数可实现实体权限的传递授权。

SQL> grant select on scott.dept to white with grant option;

实体权限的回收:收回white 用户针对 scott.emp 对象的查询权限
如果收回某个用户的对象权限,那么对于这个用户使用 WITH GRANT OPTION 授予权限的用户来说,同样还会收回这些用户的相同权限,也就是说回收授权是级联的

SQL> revoke select on scott.emp from white;

将对象权限授予全体用户

将对象 white.t1 的查询权限授予所有用户
SQL> grant select on white.t1 to public;
Grant succeeded.

2.3 查询用户权限

ORACLE 的数据字典分为:USER,ALL 和 DBA

  • USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息。
  • ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息。
  • DBA_*:整个数据库中对象的信息。

与用户权限相关的数据字典表有:

  • 系统权限
    所有用户和角色所拥有的系统权限,使用 where grantee=‘*’ 查询指定用户或角色所拥有的系统权限:DBA_SYS_PRIVS
    当前用户所拥有的系统权限:USER_SYS_PRIVS
    某个角色所拥有的系统权限:ROLE_SYS_PRIVS
  • 对象权限
    所有用户的对象权限:DBA_TAB_PRIVS
    所有用户的对象权限:ALL_TAB_PRIVS
    当前用户的对象权限:USER_TAB_PRIVS
    角色所拥有的对象权限:ROLE_TAB_PRIVS
  • 当前会话的权限
    当前用户所拥有的系统权限和对象权限:SESSION_PRIVS
    当前用户被激活的角色:SESSION_ROLES
  • 角色信息
    所有角色:DBA_ROLES
    授予用户的角色:DBA_ROLE_PRIVS

3 角色

角色(role)是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。

3.1 系统预定义角色

预定义角色是在数据库安装后,系统自动创建的一些常用的角色。查询角色所包含的权限可以使用以下语句:

SQL> select * from role_sys_privs where role='RESOURCE';
  • CONNECT,RESOURCE,DBA
    这些预定义角色主要用于数据库管理。Oracle 建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。
  • DELETE_CATALOG_ROLE,EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE
    这些角色主要用于访问数据字典视图和包。
  • EXP_FULL_DATABASE,IMP_FULL_DATABASE
    这两个角色用于数据导入导出工具的使用。
  • AQ_USER_ROLE,AQ_ADMINISTRATOR_ROLE
    这两个角色用于 Oracle 高级查询功能。
  • SNMPAGENT
    用于Oracle enterprise manager 和 Intelligent Agent
  • RECOVERY_CATALOG_OWNER
    用于创建拥有恢复库的用户。

3.2 管理角色

3.2.1 一般操作

创建角色
create role role_name;
创建带有口令的角色
create role class_manager identified by Wgx123456;SQL> create role teacher;
SQL> create role student;为角色授权
SQL> grant create any table, create procedure to teacher;
SQL> grant SELECT ANY TABLE to student;授予角色给用户
SQL> grant teacher to white;
SQL> grant student to black;查看用户 while 和 black 包含的角色:
SQL> select * from dba_role_privs where grantee='WHITE';
SQL> select * from dba_role_privs where grantee='BLACK';查看角色所包含的权限
SQL> select * from role_sys_privs where ROLE='TEACHER';
SQL> select * from role_sys_privs where ROLE='STUDENT';

3.2.2 为角色添加或删除口令

为角色添加口令
SQL> alter role teacher identified by Tea123456;
删除角色的口令
SQL> alter role teacher not identified;

3.2.3 设置当前用户要生效的角色

假设 user1 用户有 b1、b2、b3 三个角色,那么如果 b1 未生效,则 b1 所包含的权限对于用户 user1 来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户。最大可生效角色数由参数 MAX_ENABLED_ROLES 设定:

SQL> show parameter  MAX_ENABLED_ROLES

用户登录后,oracle 将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。

SQL> select * from SESSION_ROLES;SQL> create user boss identified by Boss123456;
SQL> create role manager;SQL> grant connect,resource,dba to manager;
SQL> grant manager,teacher,student to boss;

使boss 用户的角色生效:

--设置所有角色失效
SQL> set role none;SQL> select * from session_roles;
no rows selected使 teacher 生效
SQL> set role teacher;--使 connect,student 生效
SQL> set role student,connect;--使除了 student 外的该用户的所有其它角色生效
SQL> set role all except student;

3.2.4 默认角色/删除角色

修改用户,设置其默认角色

SQL> alter user boss default role teacher;

删除角色
角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。

SQL> drop role student;
Role dropped.

相关文章:

Oracle架构之用户,权限,角色讲解

文章目录 1 用户1.1 简介1.1.1 定义1.1.2 用户相关信息1.1.2.1 用户默认表空间1.1.2.2 用户临时表空间1.1.2.3 用户资源文件1.1.2.4 用户表空间限额1.1.2.5 用户管理有关的数据字典 1.1.3 用户、模式、模式对象1.1.4 实例模式 SCOTT1.1.5 各个角色区别 1.2 用户管理1.2.1 创建用…...

Unity_Obfuscator Pro代码混淆工具_学习日志

Unity_Obfuscator Pro代码混淆工具_学习日志 切勿将密码或 API 密钥存储在您附带的应用程序内。 混淆后的热更新暂时没有想到怎么办 Obfuscator 文档 https://docs.guardingpearsoftware.com/manual/Obfuscator/Description.html商店链接Obfuscator Pro(大约$70&a…...

已解决:org.springframework.web.HttpMediaTypeNotAcceptableException

文章目录 写在前面问题描述报错原因分析: 解决思路解决办法1. 确保客户端请求的 Accept 头正确2. 修改 Controller 方法的 produces 参数3. 配置合适的消息转换器4. 检查 Spring 配置中的媒体类型5. 其他解决方案 总结 写在前面 在开发过程中,Spring 框…...

C/C++简单编译原理

我们写的头文件和.cpp文件究竟是如何在电脑中运行的? 先明确几个文件类型: 1、头文件(.h .hpp) 第三方头文件、系统头文件、自编头文件…… 2、编译单位(.cpp .c cu) 自己写的脚本文件 3、目标文件&…...

文件处理不再难:带你轻松攻克C语言文件操作

嘿嘿,家人们,今天咱们来详细剖析C语言中的文件操作,好啦,废话不多讲,开干! 目录 1:为什么使用文件 2:文件的概念 2.1:程序文件 2.2:数据文件 2.3:文件名 3:二进制文件与文本文件 4:文件的打开与关闭 4.1:流与标准流 4.1.1:流 4.1.2:标准流 4.2:文件指针 4.3:文件的…...

Unity3D 单例模式

Unity3D 泛型单例 单例模式 单例模式是一种创建型设计模式,能够保证一个类只有一个实例,提供访问实例的全局节点。 通常会把一些管理类设置成单例,例如 GameManager、UIManager 等,可以很方便地使用这些管理类单例,…...

解析TMalign文本文件中的转换矩阵

TM-align 将两个蛋白质结构通过旋转和位移对齐后: TMalign test1.pdb test2.pdb -m mtx.txt 输出转换矩阵,文件内容为: ------ The rotation matrix to rotate Chain_1 to Chain_2 ------ m t[m] u[m][0] u[…...

vue.js组建开发

Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它采用了组件化的开发方式,将UI界面拆分成多个可重用的组件,通过组合这些组件来构建复杂的应用程序。在本文中,我们将探讨Vue.js组件开发的相关概念和技术。 一、组件化开发的优势 组件…...

D29【python 接口自动化学习】- python基础之输入输出与文件操作

day29 格式化输出 学习日期:20241006 学习目标:输入输出与文件操作﹣-41 格式化输出:如何将执行结果通过屏幕输出? 学习笔记: 三种常用的格式化输出方式 百分号方式 format函数方式 总结 1. 格式化输出…...

jQuery——平滑翻页

平滑翻页 param next true:下一页 false:下一页 本文分享到此结束,欢迎大家评论区相互讨论学习,下一篇继续分享jQuery中循环翻页的学习。...

二叉树--DS

1. 树 1.1 树的定义 树是一种非线性的数据结构,它是由n (n > 0)个有限结点组成的一个具有层次关系的集合。之所以将它称为“树”,是因为它像一颗倒挂起来的树,也就是说它是根朝上,叶子在下的。 参考上面的图片,…...

State of ChatGPT ---- ChatGPT的技术综述

声明:该文总结自AI菩萨Andrej Karpathy在youtube发布的演讲视频。 原视频连接:State of GPT | BRK216HFS 基础知识: Transformer原文带读与代码实现https://blog.csdn.net/m0_62716099/article/details/141289541?spm1001.2014.3001.5501 H…...

构建高效新闻推荐系统:Spring Boot的力量

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...

如何使用ipopt进行非线性约束求目标函数最小值(NLP非线性规划)内点法(inner point method)

非线性规划,一般用matlab调用cplex和gurobi了,但这两个一般用于线性规划和二次规划 线性规划LP,二次规划(quadratic programming),如果要求更一般的非线性规划IPOT是个很好的选择,求解器很多&a…...

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题 一句话省流: 确保项目地址没有任何中文,重新申请个许可证,然后该咋就咋,完事。 ——————————————————————————————…...

回归分析在数据挖掘中的应用简析

一、引言 在数据驱动的时代,数据挖掘技术已成为从海量数据中提取有价值信息的关键工具。 回归分析,作为一种经典的统计学习方法,不仅在理论研究上有着深厚的基础,而且在实际 应用中也展现出强大的功能。 二、回归分析基础 2.1 回…...

【Node.js】worker_threads 多线程

Node.js 中的 worker_threads 模块 worker_threads 模块是 Node.js 中用于创建多线程处理的工具。 尽管 JavaScript 是单线程的,但有时候在处理计算密集型任务或长时间运行的操作时,单线程的运行会导致主线程被阻塞,影响服务器性能。 为了…...

贪心算法c++

贪心算法C概述 一、贪心算法的基本概念 贪心算法(Greedy Algorithm),又名贪婪法,是一种解决优化问题的常用算法。其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决…...

【STM32】 TCP/IP通信协议(3)--LwIP网络接口

LwIP协议栈支持多种不同的网络接口(网卡),由于网卡是直接跟硬件平台打交道,硬件不同则处理也是不同。那Iwip如何兼容这些不同的网卡呢? LwIP提供统一的接口,底层函数需要用户自行完成,例如网卡的…...

15分钟学 Python 第39天:Python 爬虫入门(五)

Day 39:Python 爬虫入门数据存储概述 在进行网页爬虫时,抓取到的数据需要存储以供后续分析和使用。常见的存储方式包括但不限于: 文件存储(如文本文件、CSV、JSON)数据库存储(如SQLite、MySQL、MongoDB&a…...

使用Pytorch构建自定义层并在模型中使用

使用Pytorch构建自定义层并在模型中使用 继承自nn.Module类,自定义名称为NoisyLinear的线性层,并在新模型定义过程中使用该自定义层。完整代码可以在jupyter nbviewer中在线访问。 import torch import torch.nn as nn from torch.utils.data import T…...

学习记录:js算法(五十六):从前序与中序遍历序列构造二叉树

文章目录 从前序与中序遍历序列构造二叉树我的思路网上思路 总结 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示…...

qt使用QDomDocument读写xml文件

在使用QDomDocument读写xml之前需要在工程文件添加: QT xml 1.生成xml文件 void createXml(QString xmlName) {QFile file(xmlName);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))return false;QDomDocument doc;QDomProcessin…...

Oracle架构之表空间详解

文章目录 1 表空间介绍1.1 简介1.2 表空间分类1.2.1 SYSTEM 表空间1.2.2 SYSAUX 表空间1.2.3 UNDO 表空间1.2.4 USERS 表空间 1.3 表空间字典与本地管理1.3.1 字典管理表空间(Dictionary Management Tablespace,DMT)1.3.2 本地管理方式的表空…...

springboot整合seata

一、准备 docker部署seata-server 1.5.2参考&#xff1a;docker安装各个组件的命令 二、springboot集成seata 2.1 引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId>&…...

鸿蒙开发(NEXT/API 12)【二次向用户申请授权】程序访问控制

当应用通过[requestPermissionsFromUser()]拉起弹框[请求用户授权]时&#xff0c;用户拒绝授权。应用将无法再次通过requestPermissionsFromUser拉起弹框&#xff0c;需要用户在系统应用“设置”的界面中&#xff0c;手动授予权限。 在“设置”应用中的路径&#xff1a; 路径…...

docker export/import 和 docker save/load 的区别

Docker export/import 和 docker save/load 都是用于容器和镜像的备份和迁移&#xff0c;但它们有一些关键的区别&#xff1a; docker export/import: export 作用于容器&#xff0c;import 创建镜像导出的是容器的文件系统&#xff0c;不包含镜像的元数据丢失了镜像的层级结构…...

明星周边销售网站开发:SpringBoot技术全解析

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…...

STM32+ADC+扫描模式

1 ADC简介 1 ADC(模拟到数字量的桥梁) 2 DAC(数字量到模拟的桥梁)&#xff0c;例如&#xff1a;PWM&#xff08;只有完全导通和断开的状态&#xff0c;无功率损耗的状态&#xff09; DAC主要用于波形生成&#xff08;信号发生器和音频解码器&#xff09; 3 模拟看门狗自动监…...

R语言绘制散点图

散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具&#xff0c;我们通过不同的参数调整和包的使用&#xff0c;可以创建出满足各种需求的散点图。 常用绘制散点图的函数有plot()函数和ggpl…...