我正在为我的大学做一个项目。他们给了我他们在服务器上设置的MySQL数据库的登录用户名和密码。
有了这个用户名和密码,我就可以登录到服务器了。我对它运行了以下查询:
SHOW GRANTS;
并得到了如下输出
GRANT USAGE ON *.* TO 'me'@'localhost' IDENTIFIED BY PASSWORD '*mypass'
现在,如果我试图用以下代码创建一个数据库
CREATE DATABASE test;
我收到了跟随错误
错误:拒绝用户“me”@“localhost”到数据库“test”的1044次访问
据我所知。
Linux如何知道新密码是否是旧密码的“包装”版本?(或者,创建新密码的过程)知道密码的“某些”部分吗?
假设我有密码abcEFGH123321,并将新密码设置为:acbdEFGH123321 (添加了一个d)。它显示:
new password is a wrapped version of the/an old password
我猜
..is表示,处理设置和读取新的和旧的帐户/ sudo密码的应用程序可能会散列输入密码的第一个位数X,
例如,
;
假设密码abcd是通过passwd (例如)设置的,您可以更改它(密码)
abcd到abdc (交换最后两个字符)。
它可能会使用旧密码:ab
我正在跟踪以实现API中的身份验证,而Postman将对其进行测试。
我很难让它发挥作用,部分原因是我不确定我是否理解它的工作原理。
如果删除[Authorize]标记,则运行Get()方法,输入断点,并收到预期的答复。然而,如果[Authorize]在那里,邮递员用
{“消息”:“此请求的授权已被拒绝”}
这也是我所期望的,但是,我没有碰到任何断点,所以我无法确定这个身份验证逻辑发生在哪里。
我将在哪里放置身份验证逻辑,这意味着我将在哪里查询数据库,以查看用户名/密码是否与记录匹配。
这是我正在使用的代码
public class X: ApiController
{
p
我有一个包含的数据库,用户只在数据库中验证(即SQL用户与密码)。我要做的是“不包含”数据库。在我将alter the database更改为contained 'NONE‘之前,我必须删除所有包含的用户。我真正想做的是为保留相同密码的用户创建一个SQL登录。
使用服务器登录,我可以使用LOGINPROPERTY('myusername','PasswordHash')来获取密码散列。对于使用密码的SQL用户(包含的用户),这将返回null。我可以从哪里获得包含的用户的密码哈希?