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_principals 或 sys.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学习总结!
相关文章:
SQL sever中用户管理
目录 一、用户管理常见方法 二、用户管理方法示例 2.1. 创建登录账户: 2.1.1 检查是否创建账户成功: 2.2. 创建数据库用户: 2.2.1检查用户是否创建成功: 2.3. 授予权限: 2.3.1授予 SELECT、INSERT 和 U…...
linux————pxe网络批量装机
目录 一、概述 什么是pxe pxe组件 二、搭建交互式pxe装机 一、配置基础环境 二、配置vsftpd 三、配置tftp 四、准备pxelinx.0文件、引导文件、内核文件 一、准备pxelinux.0 二、准备引导文件、内核文件 五、配置dhcp 一、安装dhcp 二、配置dhcp 六、创建default文…...
处理时延降低24倍,联通云粒数据引擎优化实践
*作者:郑扬勇,云粒星河数据中台产品负责人 云粒智慧科技有限公司成立于 2018 年 6 月,是中国联通集团混改以来成立的首家合资公司,是中国智慧城市数智化建设者。一直以来,云粒智慧以数字化、智能化、集约化产品为核心&…...
学习MATLAB
今日,在大学慕课上找了一门关于MATLAB学习的网课,MATLAB对于我们这种自动化的学生应该是很重要的,之前也是在大三的寒假做自控的课程设计时候用到过,画一些奈奎斯特图,根轨迹图以及伯德图,但那之后也就没怎…...
React 18 对 state 进行保留和重置
参考文章 对 state 进行保留和重置 各个组件的 state 是各自独立的。根据组件在 UI 树中的位置,React 可以跟踪哪些 state 属于哪个组件。可以控制在重新渲染过程中何时对 state 进行保留和重置。 UI 树 浏览器使用许多树形结构来为 UI 建立模型。DOM 用于表示 …...
MySQL之事务与引擎
目录 一、事物 1、事务的概念 2、事务的ACID特点 3、事务之间的相互影响 4、Mysql及事务隔离级别(四种) 1、查询会话事务隔离级别 2、查询会话事务隔离级别 3、设置全局事务隔离级别 4、设置会话事务隔离级别 5、事务控制语句 6、演示 1、测试提交事务 2、测试事务回滚 4…...
Flink集群常见的监控指标
为确保能够全面、实时地监控Flink集群的运行状态和性能指标。以下是监控方案的主要组成部分: Flink集群概览:通过访问Flink的JobManager页面,您可以获取集群的总体信息,包括TaskManager的数量、任务槽位数量、运行中的作业以及已…...
React常见知识点
1. setCount(10)与setCount(preCount > preCount 10) 的区别: import React, { useState } from react; export default function CounterHook() {const [count, setCount] useState(() > 10);console.log(CounterHook渲染);function handleBtnClick() {//…...
Vue-router路由
配置路由 相当于SpringMVC的Controller 路径然后,跳转到对应的组件 一键生成前端项目文档...
JVM-CMS
when 堆大小要求为4-8G 原理 初始标记:执行CMS线程->STW,标记GC Root直接关联的对象->低延迟 并发标记:执行CMS线程和业务线程,从GC Root直接关联的对象开始遍历整个对象图 重新标记:执行CMS线程->STW&a…...
无涯教程-Flutter - Dart简介
Dart是一种开源通用编程语言,它最初是由Google开发的, Dart是一种具有C样式语法的面向对象的语言,它支持诸如接口,类之类的编程概念,与其他编程语言不同,Dart不支持数组, Dart集合可用于复制数据…...
如何创建美观的邮件模板并通过qq邮箱的SMTP服务向用户发送
最近在写注册功能的自动发送邮箱告知验证码的功能,无奈根本没有学过前端,只有写Qt的qss基础,只好借助网页设计自己想要的邮箱格式,最终效果如下: 也推销一下自己的项目ShaderLab,可运行ShaderToy上的大部分着色器代码&…...
手机无人直播软件在苹果iOS系统中能使用吗?
在现代社交媒体的时代,直播带货已经成为了一种热门的销售途径。通过直播,人们可以远程分享自己的商品,与观众进行互动,增强沟通和参与感。而如今,手机无人直播软件更是成为了直播带货领域的一项火爆的技术。那么&#…...
创建2个线程并执行(STL/Windows/Linux)
C并发编程入门 目录 STL 写法 #include <thread> #include <iostream> using namespace std;void thread_fun1(void) {cout << "one STL thread 1!" << endl; }void thread_fun2(void) {cout << "one STL thread 2!" <…...
Redis可以干什么
Redis可以做什么? 缓存 Redis作为一款高性能的缓存数据库,能够将常用的数据存储在内存中,以提高读写效率。它支持多种数据结构,如字符串、哈希表、列表、集合等,让你可以根据业务需求选择合适的数据结构进行缓存。 …...
R语言+Meta分析;论文新方向
Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…...
实战系列(二)| MybatisPlus详细介绍,包含代码详解
目录 1. MybatisPlus 的基本功能2. 基本用法3. MybatisPlus 的配置4. MybatisPlus 的实体类、Mapper 接口、Service 类和 Controller 类 MybatisPlus 是一个功能强大的 MyBatis 增强工具,它提供了丰富的特性来简化操作数据库的代码。它主要用于简化 JDBC 操作&#…...
横向对比 npm、pnpm、tnpm、yarn 优缺点
前端工程化是现代Web开发中不可或缺的一环,它的出现极大地提升了前端开发的效率和质量。 在过去,前端开发依赖于手动管理文件和依赖,这导致了许多问题,如版本冲突、依赖混乱和构建繁琐等。而今,随着众多前端工程化工具…...
安防监控/视频汇聚/云存储/AI智能视频融合平台页面新增地图展示功能
AI智能分析网关包含有20多种算法,包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频汇聚/安防监控/视频融合平台EasyCVR一起使…...
机器人中的数值优化(九)——拟牛顿方法(下)、BB方法
本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...

