SQL sever中用户管理

目录

一、用户管理常见方法       

二、用户管理方法示例 

2.1. 创建登录账户:

2.1.1 检查是否创建账户成功:

2.2. 创建数据库用户:

 2.2.1检查用户是否创建成功:

2.3. 授予权限:

2.3.1授予 SELECT、INSERT 和 UPDATE 权限:

2.3.1.1检查权限-使用系统函数:

切换用户方法:

2.3.1.2检查权限--使用系统视图:

2.3.1.3. 使用 SQL Server Management Studio (SSMS):

2.3.1.4. 使用视图和查询:

2.3.2授予 EXECUTE 权限

2.3.3授予所有权限:

2.4. 收回权限

2.4.1撤回特定权限:

2.4.2撤回所有权限

2.4.3撤回特定角色中的权限:

2.5. 修改用户信息:

2.5.1修改用户信息的步骤:

2.5.2修改登录名:

2.5.3修改密码:

2.5.4修改默认数据库:

2.5.5修改默认语言:

2.5.6修改其他设置:

2.6. 删除用户:

2.6.1使用 SQL Server Management Studio (SSMS)

2.6.2使用 Transact-SQL 查询

2.7. 禁用用户:

2.7.1禁用登录:

2.7.2撤销禁用:

2.7.3禁用用户在数据库中的操作权限:

三、使用SSMS创建用户和账户(补充)

3.1创建账户:

3.2创建用户:


一、用户管理常见方法       

在 Microsoft SQL Server 中,用户管理是数据库管理员的一项重要任务。用户管理涉及到创建、修改、删除用户,授予用户权限等操作。以下是一些在 SQL Server 中进行用户管理的常见方法:

1.创建登录账户:

在 SQL Server 中,首先需要创建登录账户,这是用户连接数据库的凭证。使用以下 T-SQL 命令创建登录账户:

CREATE LOGIN [login_name] WITH PASSWORD = 'password';

2. 创建数据库用户:

登录账户只是用来登录 SQL Server,要在数据库中创建用户,需要将登录账户映射到数据库用户。使用以下 T-SQL 命令创建数据库用户:

 USE [database_name];CREATE USER [user_name] FOR LOGIN [login_name];

3. 授予权限:

要让用户能够执行特定操作,需要授予适当的权限。例如,使用以下 T-SQL 命令授予 SELECT 权限:

  GRANT SELECT ON [schema_name].[table_name] TO [user_name];

授予一个数据库用户对特定表的 SELECT 权限。以下是对这条语句的解析:

  • - `GRANT`: 这是 SQL 关键字,表示你要授予权限。
  • - `SELECT`: 这是权限类型,表示你要授予用户对表的 SELECT 权限,即允许用户查询表中的数据。
  • - `ON [schema_name].[table_name]`: 这部分指定了你要授予权限的表,使用数据库模式名称和表名称来标识表。`[schema_name]` 应该替换为实际的数据库模式名称,`[table_name]` 应该替换为实际的表名称。
  • - `TO [NewUser]`: 这部分指定你要将权限授予的用户,即数据库用户。`[NewUser]` 应该替换为实际的数据库用户名称。

因此,含义是:将对特定数据库模式中的特定表的 SELECT 权限授予给指定的数据库用户。这将允许该用户能够查询该表中的数据,但不会允许进行插入、更新或删除操作。

注意:

在实际使用时,需要替换方括号中的部分(例如,`[schema_name]`、`[table_name]` 和 `[NewUser]`)为实际使用的名称。另外,为了执行这条语句,需要拥有足够的权限。

4. 修改用户信息:

若要修改用户的属性或权限,可以使用 ALTER USER 命令。例如,修改用户密码:

ALTER LOGIN [login_name] WITH PASSWORD = 'new_password';

5. 删除用户:

如果要删除用户,首先需要从数据库中删除用户,然后再删除登录账户。使用以下 T-SQL 命令删除用户:

 USE [database_name];DROP USER [user_name];

   然后,使用以下 T-SQL 命令删除登录账户:

  DROP LOGIN [login_name];

6. 禁用用户:

有时候不想删除用户,而是想暂时禁用他们的访问权限。可以使用 ALTER LOGIN 命令来禁用登录账户:

ALTER LOGIN [login_name] DISABLE;

     这些是 SQL Server 中基本的用户管理方法。在实际操作中,还可能涉及更多高级操作,如角色分配、资源限制等。务必在执行这些操作之前备份数据库,以防不必要的数据丢失。

二、用户管理方法示例 

以下是一些示例操作来创建用户、删除用户以及授予权限的方法:

首先要明白账户和用户的区别,如下所述:

在 SQL Server 中,术语“登录账户”(Login Account)和“数据库用户”(Database User)是两个相关但不同的概念。它们在数据库系统中扮演不同的角色,以下是它们之间的区别:

  • 登录账户(Login Account):

   - 登录账户是用于连接到 SQL Server 实例的凭证。它可以是 SQL Server 登录账户(由 SQL Server 管理)或 Windows 登录账户(由 Windows 管理)。
   - 登录账户用于验证用户的身份,允许用户访问 SQL Server 实例。
   - 登录账户的范围是整个 SQL Server 实例,它不限于特定数据库。
   - 登录账户的创建和管理通常由系统管理员或具有适当权限的用户执行。

  • 数据库用户(Database User):

   - 数据库用户是连接到数据库的凭证。每个登录账户可以在一个或多个数据库中具有一个或多个相关联的数据库用户。
   - 数据库用户用于控制用户在特定数据库中的访问权限和操作。
   - 数据库用户的范围仅限于特定的数据库。一个登录账户在不同的数据库中可以拥有不同的数据库用户。
   - 数据库用户的创建和管理由数据库管理员或具有适当权限的用户执行。

总结来说,登录账户是用于连接到 SQL Server 实例的凭证,它允许用户访问整个实例,而数据库用户是用于连接到数据库的凭证,它控制用户在数据库中的访问权限和操作。登录账户是更高层次的概念,用于实例级别的访问控制,而数据库用户是更具体的概念,用于数据库级别的访问控制。

2.1. 创建登录账户:

CREATE LOGIN [NewLogin] WITH PASSWORD = 'StrongPassword123';

2.1.1 检查是否创建账户成功:

使用 SQL Server Management Studio (SSMS)

使用 SQL Server Management Studio 连接到 SQL Server 实例,可以在“Security”节点下的“Logins”文件夹中查看已创建的登录账户列表。这提供了一个图形化的界面,可以轻松地查看和管理登录账户。如下操作找到左侧状态栏【安全性】-【登录名】,存在即创建成功;

 

使用系统视图

可以查询系统视图 sys.server_principals 来查找已创建的登录账户。这个视图包含了 SQL Server 实例的登录账户信息。

USE master;
SELECT name, type_desc
FROM sys.server_principals
WHERE type IN ('S', 'U', 'G');

在上面的查询中,type 列代表不同类型的登录账户,其中:

  • 'S' 表示 SQL Server 登录账户
  • 'U' 表示 Windows 用户登录账户
  • 'G' 表示 Windows 组登录账户

上述命令是查询出所有的账户,执行命令结果如图所示: 

 

也可以如下命令查询:

SELECT name, type_desc
FROM sys.server_principals
WHERE type = 'S' AND name = 'NewLogin';

 输出结果如下:

2.2. 创建数据库用户:

USE [YourDatabase];
CREATE USER [NewUser] FOR LOGIN [NewLogin];

 2.2.1检查用户是否创建成功:

①使用系统视图

可以查询 sys.server_principalssys.database_principals 系统视图来检查登录账户和数据库用户是否成功创建。

USE master;
SELECT name, type_desc
FROM sys.database_principals
WHERE type IN ('S', 'U') AND name = 'NewUser';

②使用 SQL Server Management Studio (SSMS): 

通过连接到 SQL Server 实例并在 SSMS 的“对象资源管理器”中导航到“Security”文件夹下的“Logins”或“YourDatabase”文件夹下的“Users”来查看登录账户或数据库用户列表。如果用户成功创建,将在列表中看到相应的登录账户或数据库用户。

按照如下操作查看新建用户:

注意 :

刚开始学习的时候我遇到个问题,就是SSMS一直找不到自己刚创建好的用户,明明数据库中执行命令已经创建成功,使用方法一系统视图查看是存在的,但是SSMS却查不到用户。经过多方查找才知道原因,由于我的数据库待机很久(前一天晚上结束后没有退出登录,电脑是开机状态一直持续到第二天下午) ,需要我退出重新登录数据库,然后刷新SSMS的用户就找到了刚创建的用户。

如果你在 SQL Server 中创建了一个新的登录账户或数据库用户,但无法在相应的地方找到它,就考虑以下几个可能的原因和解决方法:

  • 1. 刷新对象资源管理器:

   在 SQL Server Management Studio (SSMS) 中,对象资源管理器可能需要手动刷新才能显示最新的更改。右键单击相关的节点(例如“Logins”或“Users”),然后选择“刷新”选项,看看新创建的账户或用户是否出现。

  • 2. 确认使用正确的数据库:

   确保你在正确的数据库中查看数据库用户。如果你创建了一个数据库用户,但切换到了不同的数据库,你将无法看到该用户。

  • 3. 检查登录账户和数据库用户的名称:

   确保你在查询或查看时使用了正确的登录账户或数据库用户的名称。大小写敏感可能会影响查询结果。

  • 4. 重新登录到 SSMS:

   有时候,重新登录到 SQL Server Management Studio 可能会解决一些缓存问题,使新创建的账户或用户能够显示。

  • 5. 权限问题:

   如果你不具备足够的权限,可能无法看到特定的登录账户或数据库用户。确保你拥有足够的权限来查看相关信息。

  • 6. 检查创建语句是否成功执行:

   确保在创建账户或用户时没有遇到任何错误。如果创建语句执行失败,账户或用户可能并未成功创建。

  • 7. 系统视图查询:

   使用系统视图如 `sys.server_principals` 和 `sys.database_principals` 来查询登录账户和数据库用户的列表,确认是否成功创建。

  • 8. 检查错误日志:

   如果在创建账户或用户时遇到错误,错误日志可能会提供有关发生了什么问题的信息。

如果你仍然无法找到新创建的账户或用户,可能需要仔细检查上述因素,同时可以在问题解决后尝试重新连接到数据库实例或刷新对象资源管理器。

2.3. 授予权限:

2.3.1授予 SELECT、INSERT 和 UPDATE 权限:

授予权限给用户,以便他们可以在特定表上执行 SELECT ,INSERT,UPDATE操作:

--1.授予select权限:
USE master;
GRANT SELECT ON dbo.banji TO [NewUser];--2.授予 INSERT 和 UPDATE 权限:
USE master;
GRANT INSERT, UPDATE ON dbo.banji TO [NewUser];

检查是否权限授予成功,有以下方法:

2.3.1.1检查权限-使用系统函数

SQL Server 提供了系统函数 fn_my_permissions,该函数可以用于检查当前用户在指定对象上的权限。以下是一个示例:

SELECT *
FROM fn_my_permissions('schema_name.table_name', 'OBJECT');

使用系统函数 `fn_my_permissions` 来检查当前用户对指定对象的权限。以下是对这段代码的解析:

  • - `SELECT *`: 这是 SQL 查询的一部分,它指示从结果集中选择所有列。
  • - `FROM fn_my_permissions('schema_name.table_name', 'OBJECT')`: 这部分指定了要查询的函数和参数。`fn_my_permissions` 函数返回当前用户在指定对象上的权限信息。
  •   - `'schema_name.table_name'`: 这是一个字符串参数,用于指定对象的完全限定名称,即包括数据库模式和表名称。你需要将它替换为实际的数据库模式和表名称。
  •   - `'OBJECT'`: 这是 `fn_my_permissions` 函数的第二个参数,指示你希望检查的是一个对象的权限。可以使用 `'OBJECT'`、`'DATABASE'` 或 `'SERVER'`。

因此,这个查询的目的是获取当前用户对指定表的权限。执行查询后,结果集将包含关于当前用户在该表上的权限信息,如 SELECT、INSERT、UPDATE、DELETE 等。

要使用这个查询,将 `'schema_name.table_name'` 替换为你要查询的具体表的模式和名称。查询的结果将显示当前用户在该表上的权限列表。

切换用户方法:

执行该命令查看是否权限授予成功,首先需要切换到该用户。切换用户的方法有多种,我在这里只列举一种,比如:

使用 EXECUTE AS 语句EXECUTE AS 语句允许你切换到另一个用户的身份,以执行特定的操作。以下是一个示例:

EXECUTE AS USER = 'username';
-- 在此处执行需要切换用户身份的操作
REVERT;

在上述代码中,将 'username' 替换为要切换到的用户名。在 REVERT 语句之后,就可以返回到之前的身份。 

然后对应于我需要检查的用户:

--用户切换
EXECUTE AS USER = 'NewUser';
-- 在此处执行需要切换用户身份的操作
REVERT;

 然后再执行 如下命令:

SELECT *
FROM fn_my_permissions('dbo.banji', 'OBJECT');

输出结果为:

 

注意:

只有切换用户后才能注意到授予权限,否则将会看到很多内容,导致自己无法判定是否授予成功。就比如下图所示:

 

 列举其他几种切换用户的方法,可自行尝试:

  • **使用连接字符串**:

   如果是使用连接字符串连接到数据库,可以在连接字符串中指定用户名和密码来登录不同的用户。让你以指定用户身份连接到数据库。

 

Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password;

   将上面的 `ServerName`、`DatabaseName`、`Username` 和 `Password` 替换为实际的值。

  • **使用 SQL Server Management Studio (SSMS)**:

   在 SSMS 中,可以在连接到数据库时使用不同的凭据。在连接窗口中的“连接到服务器”部分,选择“使用 SQL Server 验证”并提供用户名和密码。这将使用指定的凭据连接到数据库。

  • **使用 Windows 身份**:

   如果是使用 Windows 身份连接到数据库,可以在 Windows 账户之间切换。在 Windows 中注销并以不同的 Windows 用户登录,然后使用 Windows 身份连接到 SQL Server。

特别注意:

无论使用哪种方法,切换用户的能力取决于你拥有的权限。确保在切换用户身份时遵循安全最佳实践,并只在必要的情况下执行。同时,要小心在生产环境中切换用户,以避免出现意外问题。

2.3.1.2检查权限--使用系统视图:

查询 `sys.database_permissions` 系统视图可以查看当前用户在数据库中的权限。以下是一个示例:

   SELECT *FROM sys.database_permissionsWHERE grantee_principal_id = DATABASE_PRINCIPAL_ID();

   这个查询会显示当前用户被授予的数据库权限。

2.3.1.3. 使用 SQL Server Management Studio (SSMS):

如果你使用 SQL Server Management Studio 连接到数据库,你可以右键单击对象(例如表、视图、存储过程等),然后选择“属性”或“权限”选项,从而查看当前用户对该对象的权限。

2.3.1.4. 使用视图和查询:

可以查询系统视图如 `sys.fn_my_permissions` 或 `sys.database_permissions`,结合其他相关的系统视图,来获取更详细的权限信息。

特别注意:

权限检查的能力取决于你所使用的权限。如果你是数据库管理员或拥有足够权限的用户,你将能够查看其他用户的权限。如果你是普通用户,你只能查看自己的权限。确保你在进行任何权限查询时遵循安全最佳实践,并只查看你有权查看的信息。 

2.3.2授予 EXECUTE 权限

 这个示例将授予用户 `Alex` 对数据库中的存储过程 `sp_GetProductInfo` 的 EXECUTE 权限,允许他执行该存储过程。

USE YourDatabase;GRANT EXECUTE ON dbo.sp_GetProductInfo TO Alex;

2.3.3授予所有权限:

这个示例将授予用户 `Admin` 对数据库中的表 `Products` 的所有权限,包括 SELECT、INSERT、UPDATE 和 DELETE。

USE YourDatabase;GRANT ALL PRIVILEGES ON dbo.Products TO Admin;

注意:

权限的授予是一个敏感的操作,应谨慎进行。确保只为需要的用户授予必要的权限,以确保数据库的安全性。权限的授予需要有足够的权限,通常由具有系统管理员或数据库管理员权限的用户执行。在实际操作中,你需要将示例中的数据库名称、表名称、用户名称等替换为实际的值。

2.4. 收回权限

要撤回用户的权限,可以使用 `REVOKE` 语句。以下是撤回用户权限的几种常见方法:

2.4.1撤回特定权限:

使用以下语法可以撤回特定权限:

REVOKE permission_typeON object_name TO user_name;

  其中,`permission_type` 是要撤回的权限类型(如 SELECT、INSERT、UPDATE 等),`object_name` 是权限所在的对象(如表、视图、存储过程等),`user_name` 是要撤回权限的用户。

  示例:

--收回权限
REVOKE insert
ON dbo.banji TO NewUser;

2.4.2撤回所有权限

如果要撤回用户在一个对象上的所有权限,可以使用以下语句:

REVOKE ALL PRIVILEGESON object_name TO user_name;

   示例:

 REVOKE ALL PRIVILEGES ON dbo.Table1 TO John;

   这会撤回用户在指定对象上的所有权限。

2.4.3撤回特定角色中的权限:

如果你的用户是通过角色分配的权限,你可以从角色中撤回权限。首先需要从角色中撤回权限,然后角色中的用户也会丧失相应的权限。

   示例:

REVOKE SELECT ON dbo.Table1 FROM RoleName;

撤回角色 `RoleName` 在表 `dbo.Table1` 上的 SELECT 权限。

注意:

执行 `REVOKE` 操作需要有足够的权限。通常,只有拥有相应权限的用户(如数据库管理员、系统管理员)才能执行这些操作。在执行权限撤回操作之前,请确保你理解其影响,并谨慎操作,以防止意外的数据访问问题。

2.5. 修改用户信息:

在 SQL Server 中,可以修改用户的多个信息,包括登录名、密码、默认数据库、默认语言等。以下是修改用户信息的一般步骤:

2.5.1修改用户信息的步骤:

  • 1. 打开 SQL Server Management Studio (SSMS) 或使用 Transact-SQL。
  • 2. 在 SSMS 中,展开 "Security" 节点,然后选择 "Logins"。
  • 3. 找到要修改的登录,并右键单击该登录。
  • 4. 选择 "Properties"。
  • 5. 在相应的选项卡中,进行所需的更改。
  • 6. 确认更改,并应用。

以下是常见的用户信息修改操作:

2.5.2修改登录名:

①在 "General" 选项卡中,可以更改登录名。

②使用 Transact-SQL 操作

ALTER LOGIN [old_login_name] WITH NAME = [new_login_name];

2.5.3修改密码:

①在 "General" 选项卡中,可以更改密码。

②使用 Transact-SQL 操作

ALTER LOGIN [login_name] WITH PASSWORD = 'new_password';

比如:

ALTER LOGIN [NewLogin] WITH PASSWORD = 'NewStrongPassword456';

2.5.4修改默认数据库:

①在 "General" 选项卡中的 "Default database" 部分,可以选择新的默认数据库。

②使用 Transact-SQL 操作

ALTER LOGIN [login_name] WITH DEFAULT_DATABASE = [new_default_database];

2.5.5修改默认语言:

①在 "General" 选项卡中的 "Default language" 部分,可以选择新的默认语言。

②使用 Transact-SQL 操作

ALTER LOGIN [login_name] WITH DEFAULT_LANGUAGE = [new_default_language];

2.5.6修改其他设置:

根据需要,还可以在不同的选项卡中修改其他设置,如服务器角色、数据库角色等。

上述示例只是一些常见的修改操作,具体情况可能因需求而异。在执行这些操作之前,请确保理解其影响并进行适当的备份,因为一些修改可能会导致用户失去对特定资源的访问权限。

2.6. 删除用户:

在 SQL Server 中,可以使用不同的方法来删除用户。以下是删除用户的两种常见方法以及相应的操作步骤:

2.6.1使用 SQL Server Management Studio (SSMS)

  • 1. 打开 SQL Server Management Studio (SSMS) 并连接到相应的 SQL Server 实例。
  • 2. 在 "Object Explorer" 中,展开目标数据库,然后选择 "Security" 节点。
  • 3. 在 "Security" 节点下选择 "Users"。
  • 4. 找到要删除的用户,右键单击该用户。
  • 5. 选择 "Delete"(删除)。
  • 6. 系统将提示您确认删除操作,确认后用户将被删除。

2.6.2使用 Transact-SQL 查询

  • 1. 打开 SQL Server Management Studio (SSMS) 并连接到相应的 SQL Server 实例。
  • 2. 打开一个新的查询窗口。
  • 3. 在查询窗口中,使用以下 Transact-SQL 查询来删除用户:

首先从数据库中删除用户:

USE [YourDatabase]; -- 切换到目标数据库
DROP USER [NewUser];

然后,从登录账户中删除用户:

DROP LOGIN [NewLogin];

在执行删除操作之前,请务必谨慎操作,并确保已经备份了相关数据。删除用户将同时删除其在数据库中的权限和资源,可能会影响到其他相关对象。

无论哪种方法,删除用户都需要谨慎处理,因为一旦删除,用户的数据和权限将不可恢复。在进行删除操作之前,请确保您已经了解其影响,并已经进行了充分的测试和备份。 

2.7. 禁用用户:

禁用用户是指限制该用户对数据库的访问和操作权限,从而防止其登录和执行特定操作。禁用用户的操作可以通过以下步骤完成:

2.7.1禁用登录:

  • 1. 打开 SQL Server Management Studio (SSMS) 或使用 Transact-SQL。
  • 2. 在 SSMS 中,展开 "Security" 节点,然后选择 "Logins"。
  • 3. 找到要禁用的登录,并右键单击该登录。
  • 4. 选择 "Properties"。
  • 5. 在 "General" 选项卡中,找到 "Login:" 部分,选择 "Disabled" 选项。或者使用 Transact-SQL 查询:
ALTER LOGIN [login_name] DISABLE;

2.7.2撤销禁用:

  • 1. 若要撤销禁用,可以重复上述步骤,但在第 5 步中选择 "Enabled" 选项。
  • 2. 或者使用 Transact-SQL 查询:
ALTER LOGIN [login_name] ENABLE;

注意:

禁用用户只会影响其登录权限,不会直接影响其数据库内的权限。如果需要限制用户在数据库中的操作权限,还需要进行以下操作:

2.7.3禁用用户在数据库中的操作权限:

  • 1. 在 SSMS 中,展开目标数据库,选择 "Security" 节点,然后选择 "Users"。
  • 2. 找到要禁用的用户,并右键单击该用户。
  • 3. 选择 "Properties"。
  • 4. 在 "General" 选项卡中,取消勾选 "Login name" 下方的复选框,这将阻止用户登录到数据库。
  • 5. 在 "Membership" 选项卡中,取消用户与角色的关联,以撤销用户在数据库中的特定权限。

或者使用 Transact-SQL 查询:

USE [database_name];
ALTER USER [user_name] DISABLE;

要重新启用用户的操作权限,使用以下 Transact-SQL 查询:

USE [database_name];
ALTER USER [user_name] ENABLE;

总之,禁用用户的操作包括禁用登录和限制数据库中的操作权限。具体步骤可能因 SQL Server 版本而异,但通常遵循类似的基本原则。在执行这些操作之前,请确保理解其影响并进行适当的备份。

三、使用SSMS创建用户和账户(补充)

3.1创建账户:

首先登录数据库,一般选择第二个登录,原因是为了方便移植连接:

右键登录名,点击新建登录名,选择第二个,输入用户名和密码,关闭强制密码过期,选择可以登录的数据库,最后点击确定;比如创建账户【张三】,如下所示:

然后登录刚设置的新账户,查看登录名:

 

如果在此账号再次创建用户会失败,因为普通用户权限不足,基本都是以系统用户进行创建 。如图所示:

3.2创建用户:

登录数据库,右键登录名,选择【新建登录名】:

输入登录名和密码,关掉强制密码过期,然后点击确定,创建成功:

 

切换用户,登录张三后再次创建用户,发现创建失败,原因是普通用户没有权限:

 

本节SQL sever用户管理的笔记和学习理解已经 整理完毕,其中内容如有错误劳请各位读者指出,然后我及时修改。感谢大家的查看,我会继续更新后续SQL sever学习总结!

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

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

相关文章

什么是BEM命名规范(Block-Element-Modifier Notation)?它有什么优势?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ BEM命名规范(Block-Element-Modifier Notation)⭐ BEM命名结构⭐ 优势⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎…

如何解决分库分表主键问题?

分析&回答 从问题角度出发:我们需要一个全局唯一的 id 来支持,排序问题等。这都是你实际生产环境中必须考虑的问题。可以先看下我们之前的文章分布式系统唯一ID如何生成? 雪花算法和雪花算法的变种是大家常用的 喵呜面试助手&#xff1…

春秋云镜 CVE-2018-1273

春秋云镜 CVE-2018-1273 Spring-data-commons 远程命令执行漏洞 靶标介绍 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中&…

【算法】滑动窗口

滑动窗口应用场景 关键词: 满足xxx条件(计算结果,出现次数,同时包含) 最长/最短 子串/子数组/子序列 例如:长度最小的子数组 滑动窗使用思路(寻找最长) 核心:左右双指…

git大文件推送报错

报错信息 不多掰扯,直接上报错信息和截图 Delta compression using up to 8 threadsRPC failde; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large从以上的报错信息不难看出推送仓库的时候,请求体过大,为…

第五讲Java面向对象——类及类的成员

前言 前面几讲,我们讲解了java的基础知识,也写了很多代码,有没有发现,每次编写代码前都会新建一个类,并且开头是public class修饰。可能有些同学不知道什么是类,以及前面我们提到方法。那么本讲,就要开始深入了解他们。 在开始讲解,我们将先了解一下编程的思想,面向对…

8.Redis-set

Set 常用命令saddsmemberssismemberscardspopsmovesrem集合间操作sinter 交集sinterstoresunion 并集sunionstoresdiff 差集sdiffstore 命令总结 内部编码应用场景使用 set来保存用户的“标签” set(集合)就是把一些有关联的数据放刀一起。 它与list的区别如下: 集合…

zookeeper 集群

zookeeper 集群 1、zookeeper 集群说明 initLimit 是Zookeeper用它来限定集群中的Zookeeper服务器连接到Leader的时限 syncLimit 限制了follower服务器与leader服务器之间请求和应答之间的时限 服务器名称与地址:集群信息(服务器编号,服务器…

Blender界面学习03 原点、鼠标所在位置的缩放与旋转

物体的坐标原点可以移动 放大缩小时默认是屏幕中央,修改为鼠标在哪儿就缩放哪儿 默认旋转时围绕屏幕的中心 可以修改为指定对象旋转

【网络教程】群晖轻松设置钉钉机器人使用Webhook发送通知消息,分分钟搞定!

文章目录 准备设置相关链接准备 演示环境:群晖DSM7.2(其他版本操作雷同)需要提前准备好你的钉钉机器人webhook链接,如果你还不会设置/获取,请点击 参考这篇文章 或自行某度设置 打开群晖,进入控制面板 —> 通知设置 —> Webhooks,如下图 然后点击新增,提供商选择…

使用栈检查括号的合法性 C 实现

使用栈检查括号的合法性 思路讲解:首先从数组数组0下标开始,如果是左括号直接无脑压入栈,直到出现右括号开始判断合法与否。遇到右括号分两种情况,第一种是空栈的情况,也就是说我们第一个字符就是右括号,那…

应用于伺服电机控制、 编码器仿真、 电动助力转向、发电机、 汽车运动检测与控制的旋变数字转换器MS5905P

MS5905P 是一款 12bit 分辨率的旋变数字转换器。 片上集成正弦波激励电路,正弦和余弦允许输入峰峰值 幅度为 2.3V 到 4.0V ,可编程激励频率为 10kHz 、 12kHz 、 15kHz 、 20kHz 。 转换器可并行或串行输出角度 和速度对应的数字量。 MS5905…

C++字符串详解

C++ 大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。string 类处理起字符串来会方便很多,完全可以代替C语言中的字符数组或字符串指针。 string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。 使用 string 类需要包…

[论文笔记]SiameseNet

引言 这是Learning Text Similarity with Siamese Recurrent Networks的论文笔记。 论文标题意思是利用孪生循环神经网络学习文本相似性。 什么是孪生神经网络呢?满足以下两个条件即可: 输入是成对的网络结构和参数共享(即同一个网络)如下图所示: 看到这种图要知道可能代…

java八股文面试[多线程]——线程的状态

5种状态一般是针对传统的线程状态来说(操作系统层面) 6种状态:Java中给线程准备的 NEW:Thread对象被创建出来了,但是还没有执行start方法。 RUNNABLE:Thread对象调用了start方法,就为RUNNABLE状…

weblogic/CVE-2018-2894文件上传漏洞复现

启动docker环境 查看帮助文档 环境启动后,访问http://your-ip:7001/console,即可看到后台登录页面。 执行docker-compose logs | grep password可查看管理员密码,管理员用户名为weblogic,密码为lFVAJ89F 登录后台页面,…

实现远程访问Linux堡垒机:通过JumpServer系统进行安全的服务器管理

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

万字解读 Android 车机核心 :CarService 的构成和链路~

前言 关于 Android 车机,之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理,但都局限于 Car Service 内 Input 相关模块。 一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制 本文将结合 Android 系…

软件架构模式+系统架构

架构模式对比 分层模式 一般信息系统中最常见的4层划分如下: Presentation layer 表示层(也就是UI层)Application layer 应用层(也就是服务层)Business logic layer 业务逻辑层(也就是领域层)…

Python 没有 pip 包问题解决

最近需要搞一个干净的Python,从官网上直接下载解压可用的绿色版,发现无法正常使用PiP 一 官网下载Python https://www.python.org/downloads/ 选择 embeddable package,这种是免安装的包,解压后可以直接使用。 二 配置环境变量 添加环境变量&#xff1a…