{"id":81935,"date":"2018-12-07T03:08:16","date_gmt":"2018-12-07T03:08:16","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=81935"},"modified":"2021-04-29T15:25:07","modified_gmt":"2021-04-29T15:25:07","slug":"how-to-linux-for-sql-server-dbas-part-3","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/database-administration-sql-server\/how-to-linux-for-sql-server-dbas-part-3\/","title":{"rendered":"How to Linux for SQL Server DBAs &#8212; Part 3"},"content":{"rendered":"<p><strong>The series so far:<\/strong><\/p>\n<ol>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/sql-linux\/how-to-linux-for-sql-server-dbas-part-1\/\">How to Linux for SQL Server DBAs \u2014 Part 1<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/sql-linux\/how-to-linux-for-sql-server-dbas-part-2\">How to Linux for SQL Server DBAs \u2014 Part 2<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/sql-linux\/how-to-linux-for-sql-server-dbas-part-3\/\">How to Linux for SQL Server DBAs \u2014 Part 3<\/a><\/li>\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/sql\/sql-linux\/how-to-linux-for-sql-server-dbas-part-4\/\">Navigate Linux for SQL Server DBAs<\/a><\/li>\n<\/ol>\n\n<p>As you jump into Part 3, you\u2019ll begin to realize how involved your education will be with Linux, and how it is taking over the world. The previous articles just scratched the surface with your new Docker container with Linux and SQL Server. You have embraced how users are created in a Linux system and what a group is. You\u2019ve begun to understand the power of the Linux kernel and the pure simplicity of it. This takes you to the next step in your education: ownership and permissions.<\/p>\n<p>Unlike Windows, there\u2019s no registry layer when working with Linux. As an operating system, Linux expects that if you\u2019ve been granted rights to perform a task, you should have the knowledge and skills to be trusted to perform the task. Every object in Linux is treated as a file, and permissions are at the core of this. Understanding how permissions work is essential, and this is the next step in your Linux journey.<\/p>\n<p>In the following section, you\u2019ll create:<\/p>\n<ul>\n<li>A Unix user<\/li>\n<li>A home directory<\/li>\n<li>A lesson directory<\/li>\n<li>And empty files to work with ownership and permission assignments.<\/li>\n<\/ul>\n<p>As you proceed into the next sections of the article, you may need to check users on your Linux host and what groups exist. You can do this by typing in the following command after you open a bash shell to your container:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cat \/etc\/passwd<\/pre>\n<p>To view groups, you can do this by cat\u2019ing the group file:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cat \/etc\/group<\/pre>\n<p>The following commands will take you through these steps. The first step will be to create a user for the test, with a home directory, using the <code>adduser<\/code> command:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;adduser jsmith2<\/pre>\n<p>Fill in the password, etc., for <em>jsmith2<\/em> and retain the password for future logins.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81936\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-16.png\" width=\"552\" height=\"340\" \/><\/p>\n<p><code>SU<\/code>, (switch user) to <em>jsmith2.<\/em><\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;su jsmith2<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81937\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-17.png\" width=\"448\" height=\"50\" \/><\/p>\n<p>Check your current location and verify that you\u2019re in the <em>\/home\/jsmith2<\/em> directory:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;pwd<\/pre>\n<p>If you find yourself at the root directory, (\/) perform the following:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cd <\/pre>\n<p>Now check with the <code>pwd<\/code> command again to verify that you\u2019re in the <em>\/home\/smith2<\/em> home directory.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81938\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-18.png\" width=\"487\" height=\"169\" \/><\/p>\n<p>Create a new directory in <em>jsmith2<\/em>\u2019s home directory and set permissions<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;mkdir part3\r\n&gt;chmod 744 part3<\/pre>\n<p>I\u2019ll explain more about the <code>chmod<\/code> command and numeric value later in the article. Switch over to the new directory:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cd part3<\/pre>\n<p>Create a new file:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;touch test.txt\r\n&gt;ls -la<\/pre>\n<p>You should see the following in your new directory:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81939\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-19.png\" width=\"684\" height=\"120\" \/><\/p>\n<h2>Identity Crisis<\/h2>\n<p>There are two main commands that are connected to permissions:<\/p>\n<p>Change Owner chown Changes the owner of a file(s)<\/p>\n<p>Change Modify chmod Modifies permissions of a file(s)<\/p>\n<p>Each file will have three designations of ownership. One will be the owner; the second will be the group assignment, (which can also be assigned to the owner) and lastly, all others. The third designation isn\u2019t an assignment, but the first two, owner and group, are.<\/p>\n<p>When creating a file, ownership and group are defaulted to the user that created it. To reassign permissions, you must first have the rights to do so. Secondly, the user and group must exist. If you are the owner of the file, you can do both, but if the file is owned by another and you don\u2019t have permissions, you will have to use \u201csuper user\u201d (su) to perform the task. To perform an ownership change, you would run the following:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;sudo chown &lt;new owner&gt;:&lt;new group&gt; &lt;filename\/folder&gt; <\/pre>\n<p>As root, (domain owner) you would be able to change the owner of any file or switch permissions. You can also do this as the user if they have <code>SUDO<\/code>, (Switch User to Domain Owner). As you\u2019re currently logged in as jsmith2, exit out of the current shell from user jsmith2 back to root.<\/p>\n<p>The second choice, if you want to run everything with the <code>SUDO<\/code> command, is to grant <code>SUDO<\/code> to <em>jsmith2<\/em> as <em>ROOT<\/em>. To do either, you must exit out of the current shell back to <em>ROOT.<\/em><\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;exit<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81940\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-20.png\" width=\"598\" height=\"85\" \/><\/p>\n<p>Note that the prompt returns to displaying the root login at the very left. If you want to grant <code>SUDO<\/code>, it can be done with the following command. Recognize that <em>jsmith2<\/em> now has root privileges on the host and, although his <code>sudo<\/code> executions can be audited, this user will now have these privileges.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;usermod -a -G sudo jsmith2<\/pre>\n<p>You can now change the owner and group of the files in the existing directory. The example displayed below demonstrates what would be required if you weren\u2019t root and using the <code>SUDO<\/code> command as <em>jsmith2<\/em>, but if you are logged in as root, the <code>SUDO <\/code>is left off the command. In this example, you\u2019ll change the owner to <em>jdoe1<\/em> and the group to <em>sqlinstall<\/em>. Note that the account and group were created in the last article.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cd \/home\/jsmith2\/part3\r\n&gt;sudo chown jdoe1:sqlinstall test.txt<\/pre>\n<p>Or as <em>ROOT<\/em>, then you\u2019d simply leave the <code>SUDO<\/code> off the command:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chown jdoe1:sqlinstall test.txt<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81941\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-21.png\" width=\"630\" height=\"218\" \/><\/p>\n<p>If the <code>SUDO<\/code> command returns an error about not being available, you will have to install it:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;apt-get install sudo<\/pre>\n<p>This is all there is to changing the ownership on a file, as well as the group in one command.<\/p>\n<h2>Permissions and Modes<\/h2>\n<p>As a DBA, you put in significant time into understanding database level security and permissions. It\u2019s as important to understand how OS level permissions impact the security of your database residing on the host. On Linux, you change permissions to files and folders by using the change modify, (<code>chmod<\/code>) command. There are different categories of user ownership and escalation of privileges to each file in Linux. The categories of user ownership are:<\/p>\n<ul>\n<li>User\/Owner=u<\/li>\n<li>Group=g<\/li>\n<li>Other\/all users=o<\/li>\n<li>ALL=A<\/li>\n<\/ul>\n<p>Similar to Microsoft Windows, there are three main categories of ownership that can be assigned singularly or in combination to create the correct allocation of ownership to any file. There\u2019s also a global grant to \u201cALL\u201d that encompasses all categories as one.<\/p>\n<p>From here, permissions are granted to perform tasks. As with a database, the least required privilege(s) to perform the action should be considered. Although three simple grants are all that are available, in combination, they create the complexity required to secure the users internal to the OS.<\/p>\n<ul>\n<li>Read<\/li>\n<li>Write<\/li>\n<li>Execute<\/li>\n<\/ul>\n<p>There are multiple modes to allocate permissions to files and directories. I\u2019ll discuss the two main ones- <strong>numeric<\/strong> and <strong>alpha<\/strong> mode.<\/p>\n<h2>Numeric Mode<\/h2>\n<p>In this mode, there is a numerical value that is assigned to each permission to simplify grants. Where this might sound confusing at first, when you see the values clearly displayed by grant, it begins to make sense.<\/p>\n<p>Read,(r)= 4<\/p>\n<p>Write,(w)= 2<\/p>\n<p>Execute, (x)=1<\/p>\n<p>For the first run through the permissions, log back in as a jsmith2 user and switch to the user\u2019s home directory if you are not already there:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;su jsmith2\r\n&gt;cd \r\n&gt;cd part3<\/pre>\n<p>The numerical values for permissions are used in conjunction with the <code>chmod<\/code> command to assign privileges to the owner, group and other for an individual or group of files. Using the example file, test.txt, you can request that permissions be set for the following to meet requirements:<\/p>\n<ul>\n<li>Owner has read, write and execute<\/li>\n<li>Group has read and execute<\/li>\n<li>Other has no privileges to the file.<\/li>\n<\/ul>\n<p>The command would be:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 750 test.txt <\/pre>\n<p>If you typed this command in, you should receive the following error, but why?<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">chmod: changing permissions of 'test.txt': Operation not permitted<\/pre>\n<p>Check the ownership and group permissions on the file:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;ls -la <\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81942\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-22.png\" width=\"689\" height=\"122\" \/><\/p>\n<p>The file is no longer owned or even part of a group that <em>jsmith2 <\/em>is part of. You could switch back the ownership of the file, but for this exercise, you\u2019ll understand the importance of ownership and create a new file to work with, this time calling it test.sh and changing the permissions on this new file.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;touch test.sh\r\n&gt;chmod 740 test.sh\r\n&gt;ls -la<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81943\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-23.png\" width=\"694\" height=\"144\" \/><\/p>\n<p>This command comes from the numerical values per grant in the list above, calculated for each category- owner, group and other and results in the following:<\/p>\n<ul>\n<li>owner has 4+2+1=7<\/li>\n<li>group has 4+0+0=4<\/li>\n<li>other has 0+0+0=0<\/li>\n<\/ul>\n<p>Unlike a standard ls, (list) command, a <code>ls -la<\/code>, (list all) command will display the permissions for the files contained in any directory broken down by owner, group, other and by individual grants.<\/p>\n<pre class=\"lang:none theme:none\">jsmith2@cd6a623ef493:~\/part3$ ls -la\r\ntotal 8\r\ndrwxr--r-- 2 jsmith2 jsmith2    4096 Oct 30 17:29 .\r\ndrwxr-xr-x 4 jsmith2 jsmith2    4096 Oct 30 17:38 ..\r\n-rwxr----- 1 jsmith2 jsmith2       0 Oct 30 18:27 test.sh\r\n-rwxr----- 1 jdoe1   sqlinstall    0 Oct 30 17:29 test.txt<\/pre>\n<p>A \u201cd\u201d in the beginning columns signifies that this is a directory, vs. a file. Notice that there are ten fields that are populated by the output- one for type and nine for permissions to the three categories, owner\/user, group and other.<\/p>\n<p>In the example above, you\u2019ll note the directories without a name, just marked with \u201c.\u201d. These are directory identifiers. The first \u201c.\u201d is to identify the current directory and the privileges granted to it. To translate this to a numeric mode command, it would look like the following:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 744 .<\/pre>\n<p>The directory identified with \u201c..\u201d is the directory above the current one and Linux is displaying that it has more privileges to the groups and other categories, both read and execute. If you translated this to numeric mode, it would result in the following:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 755 ..<\/pre>\n<p>You can view how changes to permissions via numeric mode occur by again, changing the permissions on the shell script:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 764 test.sh\r\n&gt;ls -la test.sh<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81944\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-24.png\" width=\"656\" height=\"58\" \/><\/p>\n<p>The owner has read, write and execute on the file, the group has read and write to the file and all others are only allowed read access. Understanding these privileges is essential to a DBA so you can manage the privileges to system and data files, subsequently securing your database server at the OS level.<\/p>\n<p>Now that you know how to change the owner and grant privileges on a file, it may be helpful to have a reminder on a few ways to create a file. Below are the most common ways users create a file, most often for write at the time or later.<\/p>\n<p>Create an empty file touch &lt;filename&gt;<\/p>\n<p>Create empty file and open for edit vi(m) &lt;filename&gt;<\/p>\n<p>Common editor to create files nano &lt;filename&gt;<\/p>\n<p>You may choose any of these methods, vi(m) being an older method, and nano, emacs and other editors being newer ones. Touch is most often used to verify write privileges to a location, as it efficiently creates an empty file in the directory and will fail if privileges are missing.<\/p>\n<h2>Alpha Mode<\/h2>\n<p>The secondary mode for granting privileges is Alpha mode, which uses letters to identify the category of user and privilege.<\/p>\n<p>You will again work with your <em>jsmith2 <\/em>user and <em>part3<\/em> directory from the home\/jsmith2\/part3 location.<\/p>\n<p>The difference when working with alpha mode, is that the permissions are a bit more complicated in their execution. Unlike numeric mode that simply rewrites over existing permissions, alpha requires a + or a -, along with the initial of the permissions to grant:<\/p>\n<ul>\n<li>r(Read)<\/li>\n<li>w(Write)<\/li>\n<li>x(Execute)<\/li>\n<\/ul>\n<p>This method can be used to remove permissions as easily as grant them, simply executing the <code>chmod <\/code>command, a \u201c-\u201c, the alpha mode permission and the file or directory name to remove privileges to the owner. To assist in why you would want to remove privileges from yourself, a use case is a file or directory you want to protect yourself from an accidental write or execution of, you can change the permissions to help ensure this.<\/p>\n<p>This command ends with the name of the file, and when no user\/group\/category is added, it only addresses permissions for the user executing the <code>chmod <\/code>command.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\"><code>&gt;chmod -wx test.sh<\/code><\/pre>\n<p>You would then be required to change the permissions and add read and write on the file for the owner before you\u2019d be able to perform either or if you have <code>SUDO<\/code>, then this would suffice. Always remember, <code>SUDO<\/code>, (Switch User Domain Owner is GOD.)<\/p>\n<p>The next command adds execute to the owner, group and other category for file ownership. This would result in everyone being able to execute the shell script.<\/p>\n<p>Example:<\/p>\n<pre class=\"lang:c# theme:vs2012\">&gt;chmod +x test.sh<\/pre>\n<p>At this point in the process, exit back out and become root to perform the next commands.<\/p>\n<pre class=\"lang:c# theme:vs2012\">&gt;exit<\/pre>\n<p>The root user should be at the left of your prompt if you\u2019re using the Docker image to work along with this article.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cd \/home\/jsmith2\/part3\r\n&gt;chmod -w test.sh <\/pre>\n<p>This would remove <em>jsmith2<\/em>\u2019s write privileges to the test.sh file. This might seem counter intuitive. Why would you wish to remove write privileges from your own file? Removing write or execute could protect from mistakes in processing or remind the user which script is the active one, while retaining historical code.<\/p>\n<p>To perform permissions changes using alpha mode for a group, or other, then you use the initial format and add the category before the permissions change:<\/p>\n<p>Example:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod g+x test.sh\r\n&gt;chmod g-w test.sh<\/pre>\n<p>The above commands have added execute to the test.sh file for the group assigned, but then removed write from the test.sh file. You can do the same for o, (others) by changing its permissions to read and no write or execute on the file:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod o+r test.sh\r\n&gt;chmod o-wx test.sh<\/pre>\n<p>You can combine the privilege change for owner, group and other at once. Just as:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 777 test.sh<\/pre>\n<p>This would result in the owner, group and other having read, write and execute on a file, the same would be in alpha mode:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod ugo+rwx test.sh<\/pre>\n<p>This also could be done with the a(All) category:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod a=rwx test.sh<\/pre>\n<p>At the end of this exercise, all users- owner, group and other have permissions to read, write and execute the shell script test.sh:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81945\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-25.png\" width=\"632\" height=\"127\" \/><\/p>\n<h2>Group Shift<\/h2>\n<p>Beyond <code>chmod<\/code>, is <code>chgrp<\/code>, (Change Group) which unlike <code>chown<\/code>, (change owner) that allows for a group allocation at the time of the command, can change the group with a separate command.<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chgrp sqlinstall .\/test.sh\r\n&gt;chgrp sqlinstall ..\/part3<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-81946\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2018\/12\/word-image-26.png\" width=\"633\" height=\"358\" \/><\/p>\n<p>Notice that you can change the group on a file or a directory, (remember, everything is treated as a file in Linux) as easily as I can change owner, permissions, and groups for a single file. You are able to do all of this from the current directory, using the \u201c.\u201d and \u201c..\u201d to tell Linux that you want to work in the current directory or the directory one up from where you are.<\/p>\n<p>Wildcards are permissible for all these commands as well. If you wish to change the owner of all the files in a directory:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chown jsmith2:sqlinstall *<\/pre>\n<p>You can change the permissions on all files with the .sql extension in a directory:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;chmod 744 *.sql<\/pre>\n<p>You can also grant ownership to all files and subfolders with the -R, (recursive) argument.<\/p>\n<p>If you go up one folder:<\/p>\n<pre class=\"lang:ps theme:powershell-ise\">&gt;cd ..\r\n&gt;chmod 774 .\r\n&gt;chown -R jsmith2:sqlinstall .<\/pre>\n<p>The above command just granted read, write and execute to the owner and the group, and read to others. The second command changed ownership of everything in the current folder, (.) and files in subfolders to <em>jsmith2<\/em>.<\/p>\n<h2>Conclusion<\/h2>\n<p>As you can see, there\u2019s a lot more to permissions than meets the eye. Learning how to change permissions, either by alpha or numeric mode is enough, but make sure you understand the permissions and how they translate in whichever mode you\u2019re going to use. A secure database system is essential down to the operating system level, so as a DBA your understanding of how Linux does this allow you to secure your Linux host for SQL Server and help everyone sleep at night.<\/p>\n<p>The next article will start working with navigation and processes in Linux. There\u2019s a lot to come and, hopefully, you\u2019re able to work through these scenarios on your Docker image.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DBAs running SQL Server on Linux will not only need to understand SQL Server security well, they will also need to understand how security works on Linux. In this article, Kellyn Pot&#8217;Vin-Gorman walks you through several examples, explaining the permissions and ownership of files and directories in Linux.&hellip;<\/p>\n","protected":false},"author":316206,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143527,53],"tags":[95506],"coauthors":[48576],"class_list":["post-81935","post","type-post","status-publish","format-standard","hentry","category-database-administration-sql-server","category-featured","tag-automate"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/81935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/316206"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=81935"}],"version-history":[{"count":5,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/81935\/revisions"}],"predecessor-version":[{"id":81948,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/81935\/revisions\/81948"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=81935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=81935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=81935"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=81935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}